tududi/backend/docs/swagger/projects.js
Chris eee1bbc013
Fix bug 722 (#737)
* Fix project statuses

* Refactor project states

* Add translations
2025-12-28 07:51:15 +02:00

198 lines
5.6 KiB
JavaScript

/**
* @swagger
* /api/projects:
* get:
* summary: Get all projects
* tags: [Projects]
* security:
* - cookieAuth: []
* - BearerAuth: []
* parameters:
* - in: query
* name: status
* schema:
* type: string
* enum: [not_started, planned, in_progress, waiting, done, cancelled, all, not_completed]
* description: Filter by project status
* - in: query
* name: area_id
* schema:
* type: integer
* description: Filter by area ID
* responses:
* 200:
* description: List of projects
* content:
* application/json:
* schema:
* type: array
* items:
* $ref: '#/components/schemas/Project'
* 401:
* description: Unauthorized
*/
/**
* @swagger
* /api/project:
* post:
* summary: Create a new project
* tags: [Projects]
* security:
* - cookieAuth: []
* - BearerAuth: []
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* required:
* - name
* properties:
* name:
* type: string
* description: Project name
* example: "Website Redesign"
* description:
* type: string
* description: Project description
* example: "Complete redesign of company website"
* priority:
* type: string
* enum: [low, medium, high]
* description: Project priority
* status:
* type: string
* enum: [not_started, planned, in_progress, waiting, done, cancelled]
* description: Project status
* area_id:
* type: integer
* description: Associated area ID
* due_date_at:
* type: string
* format: date-time
* description: Project due date
* image_url:
* type: string
* description: Project image URL
* tags:
* type: array
* items:
* type: string
* description: Array of tag names
* responses:
* 201:
* description: Project created successfully
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/Project'
* 400:
* description: Invalid request
* 401:
* description: Unauthorized
*/
/**
* @swagger
* /api/project/{uid}:
* patch:
* summary: Update a project
* tags: [Projects]
* security:
* - cookieAuth: []
* - BearerAuth: []
* parameters:
* - in: path
* name: uid
* required: true
* schema:
* type: string
* description: Project UID
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* properties:
* name:
* type: string
* description: Project name
* description:
* type: string
* description: Project description
* priority:
* type: string
* enum: [low, medium, high]
* description: Project priority
* status:
* type: string
* enum: [not_started, planned, in_progress, waiting, done, cancelled]
* description: Project status
* area_id:
* type: integer
* description: Associated area ID
* due_date_at:
* type: string
* format: date-time
* description: Project due date
* image_url:
* type: string
* description: Project image URL
* pin_to_sidebar:
* type: boolean
* description: Pin project to sidebar
* tags:
* type: array
* items:
* type: string
* description: Array of tag names
* responses:
* 200:
* description: Project updated successfully
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/Project'
* 400:
* description: Invalid request
* 401:
* description: Unauthorized
* 404:
* description: Project not found
*/
/**
* @swagger
* /api/project/{uid}:
* delete:
* summary: Delete a project
* tags: [Projects]
* security:
* - cookieAuth: []
* - BearerAuth: []
* parameters:
* - in: path
* name: uid
* required: true
* schema:
* type: string
* description: Project UID
* responses:
* 200:
* description: Project deleted successfully
* content:
* application/json:
* schema:
* type: object
* properties:
* message:
* type: string
* example: "Project deleted successfully."
* 401:
* description: Unauthorized
* 404:
* description: Project not found
*/