tududi/backend/docs/swagger/users.js
Chris 6fb87ac80a
Feat refactor tasks pt1 (#536)
* Refactor swagger docs

* Scaffold refactor

* Refactor crud tasks

* fixup! Refactor crud tasks

* Break down task layout

* fixup! Break down task layout

* fixup! fixup! Break down task layout

* Cleanup comments

* fixup! Cleanup comments

* Cleanup obsolete code

* Remove helpers
2025-11-15 14:02:06 +02:00

234 lines
6.4 KiB
JavaScript

/**
* @swagger
* /api/profile:
* get:
* summary: Get user profile
* tags: [Profile]
* security:
* - cookieAuth: []
* - BearerAuth: []
* responses:
* 200:
* description: User profile details
* content:
* application/json:
* schema:
* type: object
* properties:
* uid:
* type: string
* email:
* type: string
* name:
* type: string
* surname:
* type: string
* appearance:
* type: string
* enum: [light, dark, system]
* language:
* type: string
* timezone:
* type: string
* first_day_of_week:
* type: integer
* avatar_image:
* type: string
* telegram_bot_token:
* type: string
* telegram_chat_id:
* type: string
* task_summary_enabled:
* type: boolean
* task_summary_frequency:
* type: string
* task_intelligence_enabled:
* type: boolean
* pomodoro_enabled:
* type: boolean
* 401:
* description: Unauthorized
* 404:
* description: Profile not found
*/
/**
* @swagger
* /api/profile:
* patch:
* summary: Update user profile
* tags: [Profile]
* security:
* - cookieAuth: []
* - BearerAuth: []
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* properties:
* name:
* type: string
* description: User's first name
* surname:
* type: string
* description: User's last name
* appearance:
* type: string
* enum: [light, dark, system]
* description: Theme preference
* language:
* type: string
* description: Language code (e.g., "en", "es")
* timezone:
* type: string
* description: Timezone (e.g., "America/New_York")
* first_day_of_week:
* type: integer
* description: First day of week (0=Sunday, 1=Monday)
* avatar_image:
* type: string
* description: Avatar image URL
* telegram_bot_token:
* type: string
* description: Telegram bot token
* telegram_allowed_users:
* type: string
* description: Comma-separated list of allowed Telegram users
* task_intelligence_enabled:
* type: boolean
* description: Enable task intelligence features
* task_summary_enabled:
* type: boolean
* description: Enable task summary emails
* pomodoro_enabled:
* type: boolean
* description: Enable Pomodoro timer
* responses:
* 200:
* description: Profile updated successfully
* content:
* application/json:
* schema:
* type: object
* properties:
* uid:
* type: string
* email:
* type: string
* name:
* type: string
* 400:
* description: Invalid request
* 401:
* description: Unauthorized
* 404:
* description: Profile not found
*/
/**
* @swagger
* /api/profile/api-keys:
* get:
* summary: List API keys for the current user
* tags: [Profile]
* security:
* - cookieAuth: []
* - BearerAuth: []
* responses:
* 200:
* description: List of API keys
* content:
* application/json:
* schema:
* type: array
* items:
* $ref: '#/components/schemas/ApiKey'
*/
/**
* @swagger
* /api/profile/api-keys:
* post:
* summary: Create a new API key
* tags: [Profile]
* security:
* - cookieAuth: []
* - BearerAuth: []
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* required:
* - name
* properties:
* name:
* type: string
* description: Friendly name for the API key
* expires_at:
* type: string
* format: date-time
* description: Optional expiration timestamp
* responses:
* 201:
* description: API key created
* content:
* application/json:
* schema:
* type: object
* properties:
* token:
* type: string
* description: The plain API key. This value is only returned once.
* apiKey:
* $ref: '#/components/schemas/ApiKey'
* 400:
* description: Invalid payload
*/
/**
* @swagger
* /api/profile/api-keys/{id}/revoke:
* post:
* summary: Revoke an API key
* tags: [Profile]
* security:
* - cookieAuth: []
* - BearerAuth: []
* parameters:
* - in: path
* name: id
* required: true
* schema:
* type: integer
* responses:
* 200:
* description: Revoked key details
* 404:
* description: API key not found
*/
/**
* @swagger
* /api/profile/api-keys/{id}:
* delete:
* summary: Delete an API key
* tags: [Profile]
* security:
* - cookieAuth: []
* - BearerAuth: []
* parameters:
* - in: path
* name: id
* required: true
* schema:
* type: integer
* responses:
* 204:
* description: API key deleted
* 404:
* description: API key not found
*/