| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- package services
 
- import (
 
- 	"context"
 
- 	"fmt"
 
- 	"github.com/aws/aws-sdk-go-v2/aws"
 
- 	"github.com/aws/aws-sdk-go-v2/config"
 
- 	"github.com/aws/aws-sdk-go-v2/service/sqs"
 
- 	"github.com/fgm/izidic"
 
- )
 
- func SQSClientService(dic *izidic.Container) (any, error) {
 
- 	ctx := context.Background()
 
- 	profile := dic.MustParam(PProfile).(string)
 
- 	region := dic.MustParam(PRegion).(string)
 
- 	epr := endpointResolver{region: region}
 
- 	cfg, err := config.LoadDefaultConfig(ctx,
 
- 		config.WithRegion(region),
 
- 		config.WithSharedConfigProfile(profile),
 
- 		config.WithEndpointResolverWithOptions(epr),
 
- 	)
 
- 	if err != nil {
 
- 		return nil, fmt.Errorf("failed loading default AWS config: %w", err)
 
- 	}
 
- 	client := sqs.NewFromConfig(cfg)
 
- 	return client, nil
 
- }
 
- type endpointResolver struct {
 
- 	region string
 
- }
 
- func (e endpointResolver) ResolveEndpoint(service, region string, options ...interface{}) (aws.Endpoint, error) {
 
- 	if service != `SQS` {
 
- 		return aws.Endpoint{}, fmt.Errorf("trying to Resolve non-SQS service: %s", service)
 
- 	}
 
- 	ep := aws.Endpoint{
 
- 		URL:               "http://localhost:4566/",
 
- 		HostnameImmutable: false,
 
- 		PartitionID:       "000000000000",
 
- 		SigningName:       "",
 
- 		SigningRegion:     e.region,
 
- 		SigningMethod:     "",
 
- 		Source:            0,
 
- 	}
 
- 	if region != "" {
 
- 		ep.URL = fmt.Sprintf("https://sqs.%s.amazonaws.com/", region)
 
- 	}
 
- 	return ep, nil
 
- }
 
 
  |