Skip to content

Commit d20bb11

Browse files
authored
feat: Add Idempotency-Hit header (#1155)
* feat: return idempotency hit from controller * feat: add Idempotency-Hit header * feat: add to v1 endpoints
1 parent 3d438e4 commit d20bb11

File tree

82 files changed

+8174
-672
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+8174
-672
lines changed

docs/api/README.md

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/README.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/api/bulking/bulker.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func (b *Bulker) processElement(ctx context.Context, ctrl ledgercontroller.Contr
140140
return nil, 0, fmt.Errorf("error parsing element: %s", err)
141141
}
142142

143-
log, createTransactionResult, err := ctrl.CreateTransaction(ctx, ledgercontroller.Parameters[ledgercontroller.CreateTransaction]{
143+
log, createTransactionResult, _, err := ctrl.CreateTransaction(ctx, ledgercontroller.Parameters[ledgercontroller.CreateTransaction]{
144144
DryRun: false,
145145
IdempotencyKey: data.IdempotencyKey,
146146
Input: *rs,
@@ -164,7 +164,7 @@ func (b *Bulker) processElement(ctx context.Context, ctrl ledgercontroller.Contr
164164
if err := json.Unmarshal(req.TargetID, &address); err != nil {
165165
return nil, 0, err
166166
}
167-
log, err = ctrl.SaveAccountMetadata(ctx, ledgercontroller.Parameters[ledgercontroller.SaveAccountMetadata]{
167+
log, _, err = ctrl.SaveAccountMetadata(ctx, ledgercontroller.Parameters[ledgercontroller.SaveAccountMetadata]{
168168
DryRun: false,
169169
IdempotencyKey: data.IdempotencyKey,
170170
Input: ledgercontroller.SaveAccountMetadata{
@@ -177,7 +177,7 @@ func (b *Bulker) processElement(ctx context.Context, ctrl ledgercontroller.Contr
177177
if err := json.Unmarshal(req.TargetID, &transactionID); err != nil {
178178
return nil, 0, err
179179
}
180-
log, err = ctrl.SaveTransactionMetadata(ctx, ledgercontroller.Parameters[ledgercontroller.SaveTransactionMetadata]{
180+
log, _, err = ctrl.SaveTransactionMetadata(ctx, ledgercontroller.Parameters[ledgercontroller.SaveTransactionMetadata]{
181181
DryRun: false,
182182
IdempotencyKey: data.IdempotencyKey,
183183
Input: ledgercontroller.SaveTransactionMetadata{
@@ -196,7 +196,7 @@ func (b *Bulker) processElement(ctx context.Context, ctrl ledgercontroller.Contr
196196
case ActionRevertTransaction:
197197
req := data.Data.(RevertTransactionRequest)
198198

199-
log, revertTransactionResult, err := ctrl.RevertTransaction(ctx, ledgercontroller.Parameters[ledgercontroller.RevertTransaction]{
199+
log, revertTransactionResult, _, err := ctrl.RevertTransaction(ctx, ledgercontroller.Parameters[ledgercontroller.RevertTransaction]{
200200
DryRun: false,
201201
IdempotencyKey: data.IdempotencyKey,
202202
Input: ledgercontroller.RevertTransaction{
@@ -225,7 +225,7 @@ func (b *Bulker) processElement(ctx context.Context, ctrl ledgercontroller.Contr
225225
return nil, 0, err
226226
}
227227

228-
log, err = ctrl.DeleteAccountMetadata(ctx, ledgercontroller.Parameters[ledgercontroller.DeleteAccountMetadata]{
228+
log, _, err = ctrl.DeleteAccountMetadata(ctx, ledgercontroller.Parameters[ledgercontroller.DeleteAccountMetadata]{
229229
DryRun: false,
230230
IdempotencyKey: data.IdempotencyKey,
231231
Input: ledgercontroller.DeleteAccountMetadata{
@@ -239,7 +239,7 @@ func (b *Bulker) processElement(ctx context.Context, ctrl ledgercontroller.Contr
239239
return nil, 0, err
240240
}
241241

242-
log, err = ctrl.DeleteTransactionMetadata(ctx, ledgercontroller.Parameters[ledgercontroller.DeleteTransactionMetadata]{
242+
log, _, err = ctrl.DeleteTransactionMetadata(ctx, ledgercontroller.Parameters[ledgercontroller.DeleteTransactionMetadata]{
243243
DryRun: false,
244244
IdempotencyKey: data.IdempotencyKey,
245245
Input: ledgercontroller.DeleteTransactionMetadata{

internal/api/bulking/bulker_test.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func TestBulk(t *testing.T) {
7474
Timestamp: now,
7575
},
7676
},
77-
}, nil)
77+
}, false, nil)
7878
},
7979
expectResults: []BulkElementResult{{
8080
Data: ledger.Transaction{
@@ -112,7 +112,7 @@ func TestBulk(t *testing.T) {
112112
}).
113113
Return(&ledger.Log{
114114
ID: pointer.For(uint64(1)),
115-
}, nil)
115+
}, false, nil)
116116
},
117117
expectResults: []BulkElementResult{{}},
118118
},
@@ -140,7 +140,7 @@ func TestBulk(t *testing.T) {
140140
}).
141141
Return(&ledger.Log{
142142
ID: pointer.For(uint64(1)),
143-
}, nil)
143+
}, false, nil)
144144
},
145145
expectResults: []BulkElementResult{{}},
146146
},
@@ -161,7 +161,7 @@ func TestBulk(t *testing.T) {
161161
}).
162162
Return(&ledger.Log{
163163
ID: pointer.For(uint64(1)),
164-
}, &ledger.RevertedTransaction{}, nil)
164+
}, &ledger.RevertedTransaction{}, false, nil)
165165
},
166166
expectResults: []BulkElementResult{{
167167
Data: ledger.Transaction{},
@@ -187,7 +187,7 @@ func TestBulk(t *testing.T) {
187187
}).
188188
Return(&ledger.Log{
189189
ID: pointer.For(uint64(1)),
190-
}, nil)
190+
}, false, nil)
191191
},
192192
expectResults: []BulkElementResult{{}},
193193
},
@@ -211,7 +211,7 @@ func TestBulk(t *testing.T) {
211211
}).
212212
Return(&ledger.Log{
213213
ID: pointer.For(uint64(1)),
214-
}, nil)
214+
}, false, nil)
215215
},
216216
expectResults: []BulkElementResult{{}},
217217
},
@@ -257,7 +257,7 @@ func TestBulk(t *testing.T) {
257257
}).
258258
Return(&ledger.Log{
259259
ID: pointer.For(uint64(1)),
260-
}, nil)
260+
}, false, nil)
261261
mockLedger.EXPECT().
262262
SaveAccountMetadata(gomock.Any(), ledgercontroller.Parameters[ledgercontroller.SaveAccountMetadata]{
263263
Input: ledgercontroller.SaveAccountMetadata{
@@ -267,7 +267,7 @@ func TestBulk(t *testing.T) {
267267
},
268268
},
269269
}).
270-
Return(nil, errors.New("unexpected error"))
270+
Return(nil, false, errors.New("unexpected error"))
271271
},
272272
expectResults: []BulkElementResult{{}, {
273273
Error: errors.New("unexpected error"),
@@ -319,7 +319,7 @@ func TestBulk(t *testing.T) {
319319
}).
320320
Return(&ledger.Log{
321321
ID: pointer.For(uint64(1)),
322-
}, nil)
322+
}, false, nil)
323323
mockLedger.EXPECT().
324324
SaveAccountMetadata(gomock.Any(), ledgercontroller.Parameters[ledgercontroller.SaveAccountMetadata]{
325325
Input: ledgercontroller.SaveAccountMetadata{
@@ -329,7 +329,7 @@ func TestBulk(t *testing.T) {
329329
},
330330
},
331331
}).
332-
Return(nil, errors.New("unexpected error"))
332+
Return(nil, false, errors.New("unexpected error"))
333333
mockLedger.EXPECT().
334334
SaveAccountMetadata(gomock.Any(), ledgercontroller.Parameters[ledgercontroller.SaveAccountMetadata]{
335335
Input: ledgercontroller.SaveAccountMetadata{
@@ -341,7 +341,7 @@ func TestBulk(t *testing.T) {
341341
}).
342342
Return(&ledger.Log{
343343
ID: pointer.For(uint64(1)),
344-
}, nil)
344+
}, false, nil)
345345
},
346346
expectResults: []BulkElementResult{{}, {
347347
Error: errors.New("unexpected error"),
@@ -388,7 +388,7 @@ func TestBulk(t *testing.T) {
388388
}).
389389
Return(&ledger.Log{
390390
ID: pointer.For(uint64(1)),
391-
}, nil)
391+
}, false, nil)
392392

393393
mockLedger.EXPECT().
394394
SaveAccountMetadata(gomock.Any(), ledgercontroller.Parameters[ledgercontroller.SaveAccountMetadata]{
@@ -401,7 +401,7 @@ func TestBulk(t *testing.T) {
401401
}).
402402
Return(&ledger.Log{
403403
ID: pointer.For(uint64(1)),
404-
}, nil)
404+
}, false, nil)
405405

406406
mockLedger.EXPECT().
407407
Commit(gomock.Any()).

internal/api/bulking/mocks.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
//go:generate mockgen -write_source_comment=false -write_package_comment=false -source ../../controller/ledger/controller.go -destination mocks_ledger_controller_test.go -package bulking --mock_names Controller=LedgerController . Controller
1+
//go:generate mockgen -write_source_comment=false -write_package_comment=false -source ../../controller/ledger/controller.go -destination mocks_ledger_controller_test.go -typed -package bulking --mock_names Controller=LedgerController . Controller
22
package bulking

0 commit comments

Comments
 (0)