diff --git a/pkg/accessreview/campaign_service.go b/pkg/accessreview/campaign_service.go index be68e769b..336b92f34 100644 --- a/pkg/accessreview/campaign_service.go +++ b/pkg/accessreview/campaign_service.go @@ -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) } diff --git a/pkg/coredata/access_review_entry.go b/pkg/coredata/access_review_entry.go index e99bce987..5ebee1761 100644 --- a/pkg/coredata/access_review_entry.go +++ b/pkg/coredata/access_review_entry.go @@ -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,