feat(api): add categories directory - #148
Merged
Merged
Conversation
There was a problem hiding this comment.
🟢 Approval recommended
The endpoint behavior matches the linked acceptance criteria and is backed by targeted tests for authorization, tenant scoping, strict query validation, and response contract.
Pull request overview
Adds a new tenant-safe, read-only Categories directory endpoint under the existing /api/v1/ API surface, reusing workspace-context resolution and category services to ensure consistent authorization and scoping behavior.
Changes:
- Introduces
GET /api/v1/categories/with a strict, boundedselectable_only=true|falsequery contract. - Registers the new route in the API URL configuration.
- Adds API tests covering auth/session expiry, workspace scoping, role-based access, projection/ordering, filter behavior, and JSON 400/405 error contracts.
File summaries
| File | Description |
|---|---|
| backend/api/category_views.py | Implements the categories directory GET endpoint with strict query validation, workspace context resolution, permission checks, deterministic ordering, and JSON no-store responses. |
| backend/api/urls.py | Wires the new categories/ route into the /api/v1/ URL namespace. |
| backend/api/tests.py | Adds coverage for the new endpoint’s authz, tenant scoping, response contract, filters, and error/method handling. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
selectable_onlyfilter for future Ledger category selection.Changes
backend/api/category_views.pybackend/api/urls.py/api/v1/categories/.backend/api/tests.pyTesting
python manage.py checkpython manage.py makemigrations --check --dry-rungit diff --checkContributor checklist
type:*labelCo-Authored-BytrailersCloses #147