Skip to content

Commit b055bcd

Browse files
committed
use Batch helper for community blocklist
1 parent 8afac62 commit b055bcd

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

pkg/database/alerts.go

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -332,32 +332,35 @@ func (c *Client) UpdateCommunityBlocklist(ctx context.Context, alertItem *models
332332
valueList = append(valueList, *decisionItem.Value)
333333
}
334334

335-
deleteChunks := slicetools.Chunks(valueList, c.decisionBulkSize)
335+
// Delete older decisions from capi
336336

337-
for _, deleteChunk := range deleteChunks {
338-
// Deleting older decisions from capi
337+
if err := Batch(ctx, valueList, c.decisionBulkSize, func(ctx context.Context, vals []string) error {
339338
deletedDecisions, err := txClient.Decision.Delete().
340339
Where(decision.And(
341340
decision.OriginEQ(decOrigin),
342341
decision.Not(decision.HasOwnerWith(alert.IDEQ(alertRef.ID))),
343-
decision.ValueIn(deleteChunk...),
344-
)).Exec(ctx)
342+
decision.ValueIn(vals...),
343+
)).Exec(ctx)
345344
if err != nil {
346-
return 0, 0, 0, rollbackOnError(txClient, err, "deleting older community blocklist decisions")
345+
return err
347346
}
348-
349347
deleted += deletedDecisions
348+
return nil
349+
}); err != nil {
350+
return 0, 0, 0, rollbackOnError(txClient, err, "deleting older community blocklist decisions")
350351
}
351352

352-
builderChunks := slicetools.Chunks(decisionBuilders, c.decisionBulkSize)
353+
// Insert new decisions
353354

354-
for _, builderChunk := range builderChunks {
355-
insertedDecisions, err := txClient.Decision.CreateBulk(builderChunk...).Save(ctx)
355+
if err := Batch(ctx, decisionBuilders, c.decisionBulkSize, func(ctx context.Context, b []*ent.DecisionCreate) error {
356+
insertedDecisions, err := txClient.Decision.CreateBulk(b...).Save(ctx)
356357
if err != nil {
357-
return 0, 0, 0, rollbackOnError(txClient, err, "bulk creating decisions")
358+
return err
358359
}
359-
360360
inserted += len(insertedDecisions)
361+
return nil
362+
}); err != nil {
363+
return 0, 0, 0, rollbackOnError(txClient, err, "bulk creating decisions")
361364
}
362365

363366
log.Debugf("deleted %d decisions for %s vs %s", deleted, decOrigin, *alertItem.Decisions[0].Origin)

0 commit comments

Comments
 (0)