categories-api
Categories API
- Base Path:
/api/admin/categories - Auth: Admin area (protect via admin middleware or gateway)
Category Model
- _id: string (stable identifier; can be provided on create)
- name: string (required)
- active: boolean (defaults to true)
- createdAt / updatedAt: string (ISO)
Notes
_idis a simple string (e.g.,ELECTRONICS,ACCESSORY). If not provided on create, the server usesnameas_id.- Currently there are only list and create endpoints. Update/delete are not implemented.
List Categories
- Method: GET
- Path:
/api/admin/categories - Auth: Admin
- Response 200: Array of Category documents sorted by
nameascending. - Errors:
- 500: { "error": "Failed to fetch categories" }
Create Category
- Method: POST
- Path:
/api/admin/categories - Auth: Admin
- Body:
name: string (required)_id: string (optional; if omitted, usesname)
- Response 201: The created Category document.
- Errors:
- 400: { "error": "name is required" }
- 409: { "error": "Category already exists" }
- 500: { "error": "Failed to create category" }
Examples
List:
GET /api/admin/categories
Response: [
{ "_id": "ACCESSORY", "name": "Accessory", "active": true, "createdAt": "...", "updatedAt": "..." },
{ "_id": "CONSOLE", "name": "Console", "active": true, "createdAt": "...", "updatedAt": "..." }
]
Create:
POST /api/admin/categories
{ "name": "Console", "_id": "CONSOLE" }
Response 201:
{ "_id": "CONSOLE", "name": "Console", "active": true, "createdAt": "...", "updatedAt": "..." }