func New()

in client/client.go [31:60]


func New(ctx context.Context, logger zerolog.Logger, s *Spec) (Client, error) {

	// Loads credentials from the default credential chain.
	// Locally, set the AWS_PROFILE environment variable, or run `make serve`.
	// See https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials.
	cfg, err := config.LoadDefaultConfig(
		ctx,
		config.WithRegion("eu-west-1"),
	)
	if err != nil {
		log.Fatalf("unable to load AWS config, %v", err)
	}

	s3Client := s3.NewFromConfig(cfg)
	s3Store := store.NewS3(s3Client, s.AmigoBucketName, "packagelists")

	dynamoDbClient := dynamodb.NewFromConfig(cfg)
	bakesTable := store.NewDynamoDb(dynamoDbClient, s.AmigoBakesTableName)
	recipesTable := store.NewDynamoDb(dynamoDbClient, s.AmigoRecipesTableName)
	baseImagesTable := store.NewDynamoDb(dynamoDbClient, s.AmigoBaseImagesTableName)

	return Client{
		logger:          logger,
		Spec:            *s,
		S3Store:         s3Store,
		BakesTable:      bakesTable,
		RecipesTable:    recipesTable,
		BaseImagesTable: baseImagesTable,
	}, nil
}