Skip to main content

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

  • _id is a simple string (e.g., ELECTRONICS, ACCESSORY). If not provided on create, the server uses name as _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 name ascending.
  • 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, uses name)
  • 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": "..." }