Skip to content

[Backend APIs] Implement Pending Reviews Dashboard Queue and Fast Aggregated Count APIs - #6674

Open
jcscottiii wants to merge 1 commit into
jcscottiii/pr8-summary-suggestions-crudfrom
jcscottiii/pr9-pending-reviews-queue
Open

[Backend APIs] Implement Pending Reviews Dashboard Queue and Fast Aggregated Count APIs#6674
jcscottiii wants to merge 1 commit into
jcscottiii/pr8-summary-suggestions-crudfrom
jcscottiii/pr9-pending-reviews-queue

Conversation

@jcscottiii

Copy link
Copy Markdown
Collaborator

[Backend APIs] Implement Pending Reviews Dashboard Queue and Fast Aggregated Count APIs

Summary

Implements GET /api/v0/summary-suggestions/pending-count and GET /api/v0/summary-suggestions/pending for the release notes editorial dashboard review queue.

Enforces site editor / reviewer permissions (permissions.can_edit_any_feature), cursor-based query pagination (limit default 25, max 100), and provides plain-text hover snippets for pending AI summary suggestions.

Key Changes

  • Controller (api/summary_suggestion_api.py): Adds PendingSuggestionsCountAPI for fast total count queries (FeatureSummarySuggestion.query(status == PENDING).count()) and PendingSuggestionsQueueAPI for cursor-paginated review queue retrieval. Performs batch ndb.get_multi lookups for parent FeatureEntry metadata and extracts plain-text hover snippets using strip_markdown_hover_snippet.
  • Routes (main.py): Registers /summary-suggestions/pending-count and /summary-suggestions/pending before path-parameter routes.
  • Testing (api/summary_suggestion_api_test.py): Added PendingSuggestionsCountAPITest and PendingSuggestionsQueueAPITest verifying authorized count retrieval, cursor pagination, invalid limit/cursor parameter handling (HTTP 400), and unauthorized access shielding (HTTP 403).

TAG=agy
CONV=86f63625-bdb5-4d50-ac8d-2f8ca5128ca9

…regated Count APIs

## Summary

Implements `GET /api/v0/summary-suggestions/pending-count` and `GET /api/v0/summary-suggestions/pending` for the release notes editorial dashboard review queue.

Enforces site editor / reviewer permissions (`permissions.can_edit_any_feature`), cursor-based query pagination (`limit` default 25, max 100), and provides plain-text hover snippets for pending AI summary suggestions.

## Key Changes

- **Controller (`api/summary_suggestion_api.py`)**: Adds `PendingSuggestionsCountAPI` for fast total count queries (`FeatureSummarySuggestion.query(status == PENDING).count()`) and `PendingSuggestionsQueueAPI` for cursor-paginated review queue retrieval. Performs batch `ndb.get_multi` lookups for parent `FeatureEntry` metadata and extracts plain-text hover snippets using `strip_markdown_hover_snippet`.
- **Routes (`main.py`)**: Registers `/summary-suggestions/pending-count` and `/summary-suggestions/pending` before path-parameter routes.
- **Testing (`api/summary_suggestion_api_test.py`)**: Added `PendingSuggestionsCountAPITest` and `PendingSuggestionsQueueAPITest` verifying authorized count retrieval, cursor pagination, invalid limit/cursor parameter handling (HTTP 400), and unauthorized access shielding (HTTP 403).

TAG=agy
CONV=86f63625-bdb5-4d50-ac8d-2f8ca5128ca9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant