@@ -2,44 +2,59 @@ package CreateInterceptedDDBClient
2
2
3
3
import (
4
4
"context"
5
+ "net/url"
5
6
6
7
"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/DynamoDBwrapped"
7
8
"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
8
9
"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
9
10
"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
10
11
"github.com/aws/aws-database-encryption-sdk-dynamodb/dbesdkmiddleware"
11
- "github.com/aws/aws-sdk-go-v2/aws"
12
12
"github.com/aws/aws-sdk-go-v2/config"
13
13
"github.com/aws/aws-sdk-go-v2/service/dynamodb"
14
+ smithyendpoints "github.com/aws/smithy-go/endpoints"
14
15
)
15
16
17
+ type resolverV2 struct {
18
+ }
19
+
20
+ func (* resolverV2 ) ResolveEndpoint (ctx context.Context , params dynamodb.EndpointParameters ) (
21
+ smithyendpoints.Endpoint , error ,
22
+ ) {
23
+ u , err := url .Parse ("http://localhost:8000" )
24
+ if err != nil {
25
+ return smithyendpoints.Endpoint {}, err
26
+ }
27
+ return smithyendpoints.Endpoint {
28
+ URI : * u ,
29
+ }, nil
30
+ }
31
+
16
32
func CreateVanillaDDBClient () Wrappers.Result {
17
- cfg , err := config .LoadDefaultConfig (context .TODO (),
18
- config .WithEndpointResolver (aws .EndpointResolverFunc (func (service , region string ) (aws.Endpoint , error ) {
19
- return aws.Endpoint {URL : "http://localhost:8000" }, nil
20
- })),
21
- )
33
+ cfg , err := config .LoadDefaultConfig (context .TODO ())
22
34
if err != nil {
23
35
panic (err )
24
36
}
25
- ddbClient := dynamodb .NewFromConfig (cfg )
37
+ ddbClient := dynamodb .NewFromConfig (cfg , func (o * dynamodb.Options ) {
38
+ o .EndpointResolverV2 = & resolverV2 {}
39
+ })
26
40
return Wrappers .Companion_Result_ .Create_Success_ (& DynamoDBwrapped.Shim {
27
41
Client : ddbClient ,
28
42
})
29
43
}
30
44
31
45
func CreateInterceptedDDBClient (ddbEncryptionConfig AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig ) Wrappers.Result {
32
- cfg , err := config .LoadDefaultConfig (context .TODO (),
33
- config .WithEndpointResolver (aws .EndpointResolverFunc (func (service , region string ) (aws.Endpoint , error ) {
34
- return aws.Endpoint {URL : "http://localhost:8000" }, nil
35
- })),
36
- )
46
+ cfg , err := config .LoadDefaultConfig (context .TODO ())
37
47
if err != nil {
38
48
panic (err )
39
49
}
40
50
nativeConfig := awscryptographydbencryptionsdkdynamodbsmithygenerated .DynamoDbTablesEncryptionConfig_FromDafny (ddbEncryptionConfig )
41
51
dbEsdkMiddleware , err := dbesdkmiddleware .NewDBEsdkMiddleware (nativeConfig )
42
- ddbClient := dynamodb .NewFromConfig (cfg , dbEsdkMiddleware .CreateMiddleware ())
52
+ if err != nil {
53
+ panic (err )
54
+ }
55
+ ddbClient := dynamodb .NewFromConfig (cfg , dbEsdkMiddleware .CreateMiddleware (), func (o * dynamodb.Options ) {
56
+ o .EndpointResolverV2 = & resolverV2 {}
57
+ })
43
58
return Wrappers .Companion_Result_ .Create_Success_ (& DynamoDBwrapped.Shim {
44
59
Client : ddbClient ,
45
60
})
0 commit comments