Use filtered entry count for campaign close

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
Cursor Agent
2026-06-30 09:06:35 +00:00
committed by Bryan Frimin
parent 9c09562918
commit 3880a09cea
2 changed files with 10 additions and 28 deletions

View File

@@ -370,8 +370,17 @@ func (s *Service) CloseCampaign(
}
entries := coredata.AccessReviewEntries{}
filter := &coredata.AccessReviewEntryFilter{
Decision: new(coredata.AccessReviewEntryDecisionPending),
}
pendingCount, err := entries.CountPendingByCampaignID(ctx, conn, scope, campaignID)
pendingCount, err := entries.CountByCampaignID(
ctx,
conn,
scope,
campaignID,
filter,
)
if err != nil {
return fmt.Errorf("cannot count pending entries: %w", err)
}

View File

@@ -525,33 +525,6 @@ WHERE
return count, nil
}
func (entries *AccessReviewEntries) CountPendingByCampaignID(
ctx context.Context,
conn pg.Querier,
scope Scoper,
campaignID gid.GID,
) (int, error) {
q := `
SELECT COUNT(id)
FROM access_review_entries
WHERE
%s
AND access_review_campaign_id = @campaign_id
AND decision = 'PENDING';
`
q = fmt.Sprintf(q, scope.SQLFragment())
args := pgx.StrictNamedArgs{"campaign_id": campaignID}
maps.Copy(args, scope.SQLArguments())
var count int
if err := conn.QueryRow(ctx, q, args).Scan(&count); err != nil {
return 0, fmt.Errorf("cannot count pending access_review_entries: %w", err)
}
return count, nil
}
func (e *AccessReviewEntry) LoadOrganizationID(
ctx context.Context,
conn pg.Querier,