@@ -2,7 +2,6 @@ package dbesdkmiddleware
2
2
3
3
import (
4
4
"context"
5
- "fmt"
6
5
7
6
"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
8
7
"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated"
@@ -45,21 +44,24 @@ func (m DBEsdkMiddleware) createRequestInterceptor() middleware.InitializeMiddle
45
44
) (
46
45
out middleware.InitializeOutput , metadata middleware.Metadata , err error ,
47
46
) {
48
- ctx = m .handleRequestInterception (ctx , in .Parameters )
47
+ ctx , err = m .handleRequestInterception (ctx , in .Parameters )
48
+ if err != nil {
49
+ return middleware.InitializeOutput {}, middleware.Metadata {}, err
50
+ }
49
51
return next .HandleInitialize (ctx , in )
50
52
})
51
53
}
52
54
53
55
// handleRequestInterception handles the interception logic before the DynamoDB operation
54
- func (m DBEsdkMiddleware ) handleRequestInterception (ctx context.Context , params interface {}) context.Context {
55
- switch v := params .(type ) {
56
+ func (m DBEsdkMiddleware ) handleRequestInterception (ctx context.Context , request interface {}) ( context.Context , error ) {
57
+ switch v := request .(type ) {
56
58
case * dynamodb.PutItemInput :
57
59
ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyPutItemInput (v ))
58
60
transformedRequest , err := m .client .PutItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput {
59
61
SdkInput : * v ,
60
62
})
61
63
if err != nil {
62
- fmt . Println ( err )
64
+ return nil , err
63
65
}
64
66
* v = transformedRequest .TransformedInput
65
67
case * dynamodb.GetItemInput :
@@ -68,13 +70,110 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, params
68
70
SdkInput : * v ,
69
71
})
70
72
if err != nil {
71
- fmt .Println (err )
73
+ return nil , err
74
+ }
75
+ * v = transformedRequest .TransformedInput
76
+ case * dynamodb.BatchGetItemInput :
77
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyBatchGetItemInput (v ))
78
+ transformedRequest , err := m .client .BatchGetItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput {
79
+ SdkInput : * v ,
80
+ })
81
+ if err != nil {
82
+ return nil , err
83
+ }
84
+ * v = transformedRequest .TransformedInput
85
+ case * dynamodb.BatchWriteItemInput :
86
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyBatchWriteItemInput (v ))
87
+ transformedRequest , err := m .client .BatchWriteItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput {
88
+ SdkInput : * v ,
89
+ })
90
+ if err != nil {
91
+ return nil , err
92
+ }
93
+ * v = transformedRequest .TransformedInput
94
+ case * dynamodb.BatchExecuteStatementInput :
95
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyBatchExecuteStatementInput (v ))
96
+ transformedRequest , err := m .client .BatchExecuteStatementInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput {
97
+ SdkInput : * v ,
98
+ })
99
+ if err != nil {
100
+ return nil , err
101
+ }
102
+ * v = transformedRequest .TransformedInput
103
+ case * dynamodb.DeleteItemInput :
104
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyDeleteItemInput (v ))
105
+ transformedRequest , err := m .client .DeleteItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput {
106
+ SdkInput : * v ,
107
+ })
108
+ if err != nil {
109
+ return nil , err
110
+ }
111
+ * v = transformedRequest .TransformedInput
112
+ case * dynamodb.ExecuteStatementInput :
113
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyExecuteStatementInput (v ))
114
+ transformedRequest , err := m .client .ExecuteStatementInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput {
115
+ SdkInput : * v ,
116
+ })
117
+ if err != nil {
118
+ return nil , err
119
+ }
120
+ * v = transformedRequest .TransformedInput
121
+ case * dynamodb.ExecuteTransactionInput :
122
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyExecuteTransactionInput (v ))
123
+ transformedRequest , err := m .client .ExecuteTransactionInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput {
124
+ SdkInput : * v ,
125
+ })
126
+ if err != nil {
127
+ return nil , err
128
+ }
129
+ * v = transformedRequest .TransformedInput
130
+ case * dynamodb.QueryInput :
131
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyQueryInput (v ))
132
+ transformedRequest , err := m .client .QueryInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput {
133
+ SdkInput : * v ,
134
+ })
135
+ if err != nil {
136
+ return nil , err
137
+ }
138
+ * v = transformedRequest .TransformedInput
139
+ case * dynamodb.ScanInput :
140
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyScanInput (v ))
141
+ transformedRequest , err := m .client .ScanInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput {
142
+ SdkInput : * v ,
143
+ })
144
+ if err != nil {
145
+ return nil , err
146
+ }
147
+ * v = transformedRequest .TransformedInput
148
+ case * dynamodb.TransactGetItemsInput :
149
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyTransactGetItemsInput (v ))
150
+ transformedRequest , err := m .client .TransactGetItemsInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput {
151
+ SdkInput : * v ,
152
+ })
153
+ if err != nil {
154
+ return nil , err
155
+ }
156
+ * v = transformedRequest .TransformedInput
157
+ case * dynamodb.TransactWriteItemsInput :
158
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyTransactWriteItemsInput (v ))
159
+ transformedRequest , err := m .client .TransactWriteItemsInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput {
160
+ SdkInput : * v ,
161
+ })
162
+ if err != nil {
163
+ return nil , err
164
+ }
165
+ * v = transformedRequest .TransformedInput
166
+ case * dynamodb.UpdateItemInput :
167
+ ctx = middleware .WithStackValue (ctx , "originalInput" , * deepCopyUpdateItemInput (v ))
168
+ transformedRequest , err := m .client .UpdateItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput {
169
+ SdkInput : * v ,
170
+ })
171
+ if err != nil {
172
+ return nil , err
72
173
}
73
174
* v = transformedRequest .TransformedInput
74
- // case *dynamodb.BatchExecuteStatementInput:
75
- // m.originalRequests["BatchExecuteStatementInput"] = *DeepCopyBatchExecuteStatementInput(v)
76
175
}
77
- return ctx
176
+ return ctx , nil
78
177
}
79
178
80
179
// createResponseInterceptor creates and returns the middleware interceptor for responses
@@ -96,15 +195,15 @@ func (m DBEsdkMiddleware) createResponseInterceptor() middleware.FinalizeMiddlew
96
195
}
97
196
98
197
// handleResponseInterception handles the interception logic after the DynamoDB operation
99
- func (m DBEsdkMiddleware ) handleResponseInterception (ctx context.Context , response interface {}) {
198
+ func (m DBEsdkMiddleware ) handleResponseInterception (ctx context.Context , response interface {}) err {
100
199
switch v := response .(type ) {
101
200
case * dynamodb.PutItemOutput :
102
201
transformedRequest , err := m .client .PutItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput {
103
202
OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.PutItemInput ),
104
203
SdkOutput : * v ,
105
204
})
106
205
if err != nil {
107
- fmt . Println ( err )
206
+ return err
108
207
}
109
208
* v = transformedRequest .TransformedOutput
110
209
case * dynamodb.GetItemOutput :
@@ -113,8 +212,108 @@ func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, respon
113
212
SdkOutput : * v ,
114
213
})
115
214
if err != nil {
116
- fmt .Println (err )
215
+ return err
216
+ }
217
+ * v = transformedRequest .TransformedOutput
218
+ case * dynamodb.BatchGetItemOutput :
219
+ transformedRequest , err := m .client .BatchGetItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput {
220
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.BatchGetItemInput ),
221
+ SdkOutput : * v ,
222
+ })
223
+ if err != nil {
224
+ return err
225
+ }
226
+ * v = transformedRequest .TransformedOutput
227
+ case * dynamodb.BatchWriteItemOutput :
228
+ transformedRequest , err := m .client .BatchWriteItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput {
229
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.BatchWriteItemInput ),
230
+ SdkOutput : * v ,
231
+ })
232
+ if err != nil {
233
+ return err
234
+ }
235
+ * v = transformedRequest .TransformedOutput
236
+ case * dynamodb.BatchExecuteStatementOutput :
237
+ transformedRequest , err := m .client .BatchExecuteStatementOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput {
238
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.BatchExecuteStatementInput ),
239
+ SdkOutput : * v ,
240
+ })
241
+ if err != nil {
242
+ return err
243
+ }
244
+ * v = transformedRequest .TransformedOutput
245
+ case * dynamodb.DeleteItemOutput :
246
+ transformedRequest , err := m .client .DeleteItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput {
247
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.DeleteItemInput ),
248
+ SdkOutput : * v ,
249
+ })
250
+ if err != nil {
251
+ return err
252
+ }
253
+ * v = transformedRequest .TransformedOutput
254
+ case * dynamodb.ExecuteStatementOutput :
255
+ transformedRequest , err := m .client .ExecuteStatementOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput {
256
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.ExecuteStatementInput ),
257
+ SdkOutput : * v ,
258
+ })
259
+ if err != nil {
260
+ return err
261
+ }
262
+ * v = transformedRequest .TransformedOutput
263
+ case * dynamodb.ExecuteTransactionOutput :
264
+ transformedRequest , err := m .client .ExecuteTransactionOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput {
265
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.ExecuteTransactionInput ),
266
+ SdkOutput : * v ,
267
+ })
268
+ if err != nil {
269
+ return err
270
+ }
271
+ * v = transformedRequest .TransformedOutput
272
+ case * dynamodb.QueryOutput :
273
+ transformedRequest , err := m .client .QueryOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput {
274
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.QueryInput ),
275
+ SdkOutput : * v ,
276
+ })
277
+ if err != nil {
278
+ return err
279
+ }
280
+ * v = transformedRequest .TransformedOutput
281
+ case * dynamodb.ScanOutput :
282
+ transformedRequest , err := m .client .ScanOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput {
283
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.ScanInput ),
284
+ SdkOutput : * v ,
285
+ })
286
+ if err != nil {
287
+ return err
288
+ }
289
+ * v = transformedRequest .TransformedOutput
290
+ case * dynamodb.TransactGetItemsOutput :
291
+ transformedRequest , err := m .client .TransactGetItemsOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput {
292
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.TransactGetItemsInput ),
293
+ SdkOutput : * v ,
294
+ })
295
+ if err != nil {
296
+ return err
297
+ }
298
+ * v = transformedRequest .TransformedOutput
299
+ case * dynamodb.TransactWriteItemsOutput :
300
+ transformedRequest , err := m .client .TransactWriteItemsOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput {
301
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.TransactWriteItemsInput ),
302
+ SdkOutput : * v ,
303
+ })
304
+ if err != nil {
305
+ return err
306
+ }
307
+ * v = transformedRequest .TransformedOutput
308
+ case * dynamodb.UpdateItemOutput :
309
+ transformedRequest , err := m .client .UpdateItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput {
310
+ OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.UpdateItemInput ),
311
+ SdkOutput : * v ,
312
+ })
313
+ if err != nil {
314
+ return err
117
315
}
118
316
* v = transformedRequest .TransformedOutput
119
317
}
318
+ return nil
120
319
}
0 commit comments