fix(server): dynamodb tests + provider config

This commit is contained in:
Lakhan Samani
2022-10-21 15:55:54 +05:30
parent 476bdf00fc
commit 8449821d1b
7 changed files with 40 additions and 28 deletions

View File

@@ -1,9 +1,6 @@
package dynamodb
import (
"fmt"
"os"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
@@ -22,36 +19,29 @@ type provider struct {
// NewProvider returns a new Dynamo provider
func NewProvider() (*provider, error) {
dbURL := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseURL
awsRegion := os.Getenv(constants.EnvAwsRegion)
accessKey := os.Getenv(constants.EnvAwsAccessKeyID)
secretKey := os.Getenv(constants.EnvAwsSecretAccessKey)
awsRegion := memorystore.RequiredEnvStoreObj.GetRequiredEnv().AwsRegion
awsAccessKeyID := memorystore.RequiredEnvStoreObj.GetRequiredEnv().AwsAccessKeyID
awsSecretAccessKey := memorystore.RequiredEnvStoreObj.GetRequiredEnv().AwsSecretAccessKey
config := aws.Config{
MaxRetries: aws.Int(3),
CredentialsChainVerboseErrors: aws.Bool(true), // for full error logs
}
if awsRegion != "" {
config.Region = aws.String(awsRegion)
}
if accessKey == "" {
log.Debugf("%s not found", constants.EnvAwsAccessKeyID)
return nil, fmt.Errorf("invalid aws credentials. %s not found", constants.EnvAwsAccessKeyID)
}
if secretKey == "" {
log.Debugf("%s not found", constants.EnvAwsSecretAccessKey)
return nil, fmt.Errorf("invalid aws credentials. %s not found", constants.EnvAwsSecretAccessKey)
}
// custom accessKey, secretkey took first priority, if not then fetch config from aws credentials
if accessKey != "" && secretKey != "" {
config.Credentials = credentials.NewStaticCredentials(accessKey, secretKey, "")
// custom awsAccessKeyID, awsSecretAccessKey took first priority, if not then fetch config from aws credentials
if awsAccessKeyID != "" && awsSecretAccessKey != "" {
config.Credentials = credentials.NewStaticCredentials(awsAccessKeyID, awsSecretAccessKey, "")
} else if dbURL != "" {
// static config in case of testing or local-setup
config.Credentials = credentials.NewStaticCredentials("key", "key", "")
config.Endpoint = aws.String(dbURL)
} else {
log.Debugf("%s or %s or %s not found. Trying to load default credentials from aws config", constants.EnvAwsRegion, constants.EnvAwsAccessKeyID, constants.EnvAwsSecretAccessKey)
}
session := session.Must(session.NewSession(&config))

View File

@@ -180,7 +180,7 @@ func (p *provider) UpdateUsers(ctx context.Context, data map[string]interface{},
for _, user := range allUsers {
err = UpdateByHashKey(userCollection, "id", user.ID, data)
if err != nil {
if err == nil {
res = res + 1
}
}