@@ -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