Skip to content

Commit

Permalink
add NewClientWithURI method
Browse files Browse the repository at this point in the history
  • Loading branch information
thisisaaronland committed Nov 4, 2021
1 parent 492c884 commit 2a1a1eb
Show file tree
Hide file tree
Showing 69 changed files with 13,448 additions and 1 deletion.
52 changes: 52 additions & 0 deletions client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package dynamodb

import (
"context"
"fmt"
"github.com/aaronland/go-aws-session"
"github.com/aws/aws-sdk-go/aws"
aws_session "github.com/aws/aws-sdk-go/aws/session"
aws_dynamodb "github.com/aws/aws-sdk-go/service/dynamodb"
"net/url"
)

// 'awsdynamodb://findinaid?region=us-west-2&endpoint=http://localhost:8000&credentials=static:local:local:local'

func NewClientWithURI(ctx context.Context, uri string) (*aws_dynamodb.DynamoDB, error) {

u, err := url.Parse(uri)

if err != nil {
return nil, fmt.Errorf("Failed to parse URI, %v", err)
}

// table_name := u.Host

q := u.Query()

// partition_key := q.Get("partition_key")

region := q.Get("region")
endpoint := q.Get("endpoint")

credentials := q.Get("credentials")

cfg, err := session.NewConfigWithCredentialsAndRegion(credentials, region)

if err != nil {
return nil, fmt.Errorf("Failed to create new session for credentials '%s', %w", credentials, err)
}

if endpoint != "" {
cfg.Endpoint = aws.String(endpoint)
}

sess, err := aws_session.NewSession(cfg)

if err != nil {
return nil, fmt.Errorf("Failed to create AWS session, %w", err)
}

client := aws_dynamodb.New(sess)
return client, nil
}
5 changes: 4 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@ module github.com/aaronland/go-aws-dynamodb

go 1.12

require github.com/aws/aws-sdk-go v1.41.17
require (
github.com/aaronland/go-aws-session v0.0.6
github.com/aws/aws-sdk-go v1.41.17
)
4 changes: 4 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
github.com/aaronland/go-aws-session v0.0.6 h1:Dp1Hvg7s1qM1xJ2byktEdB16i9t6wx6tMcZRpMoSwpo=
github.com/aaronland/go-aws-session v0.0.6/go.mod h1:jflsOdd7QkD0ugdTEfU2UYpFjytP8AxiBxP++s10x88=
github.com/aaronland/go-string v0.1.2 h1:RSr/mQNbLgF37H0RV+nF7j2kILRRFkCmr8Jwq4lw92k=
github.com/aaronland/go-string v0.1.2/go.mod h1:2aMIWdTqk63jZsaLLy+p9dsB1MDRqx4sHYoLtkwyYUo=
github.com/aws/aws-sdk-go v1.38.53 h1:Qj5OvKPrDGTiCnWj+kwQXAlBO6OaFBH/WaRzJPZPg3w=
github.com/aws/aws-sdk-go v1.38.53/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/aws/aws-sdk-go v1.41.17 h1:QgPo5awGS3sbLpMhcD9zKxjcfLagQc5zthG00U9lAso=
Expand Down
2 changes: 2 additions & 0 deletions vendor/github.com/aaronland/go-aws-session/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

53 changes: 53 additions & 0 deletions vendor/github.com/aaronland/go-aws-session/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

102 changes: 102 additions & 0 deletions vendor/github.com/aaronland/go-aws-session/config.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 26 additions & 0 deletions vendor/github.com/aaronland/go-aws-session/credentials.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

81 changes: 81 additions & 0 deletions vendor/github.com/aaronland/go-aws-session/env.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions vendor/github.com/aaronland/go-aws-session/errors.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions vendor/github.com/aaronland/go-aws-session/go.mod

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 2a1a1eb

Please sign in to comment.