From 5615b0fb114eaaf273a4df0962fae7ce7c4d146c Mon Sep 17 00:00:00 2001 From: MAILLAL Anas Date: Tue, 22 Apr 2025 00:21:08 +0200 Subject: [PATCH] fix: update doc to encompose all response codes hopefully --- documentation/openapi/src/adminApi.yaml | 27 +- documentation/openapi/src/bundled.yaml | 912 ------------------ .../openapi/src/entrepreneurApi.yaml | 4 +- documentation/openapi/src/main.yaml | 4 +- documentation/openapi/src/sharedApi.yaml | 3 +- documentation/openapi/src/unauthApi.yaml | 4 +- 6 files changed, 36 insertions(+), 918 deletions(-) delete mode 100644 documentation/openapi/src/bundled.yaml diff --git a/documentation/openapi/src/adminApi.yaml b/documentation/openapi/src/adminApi.yaml index 065b9c2..5f10715 100644 --- a/documentation/openapi/src/adminApi.yaml +++ b/documentation/openapi/src/adminApi.yaml @@ -45,8 +45,8 @@ paths: application/json: schema: $ref: "./main.yaml#/components/schemas/project" - "400": - description: Bad Request - Invalid project data provided (e.g., missing required fields). + "409": + description: Bad Request - Project already exists. "401": description: Unauthorized. @@ -207,6 +207,29 @@ paths: "401": description: Unauthorized. + /admin/appointments/upcoming: + get: + operationId: getUpcomingAppointments + summary: Get upcoming appointments for an admin + tags: + - Admin API + security: + - MyINPulse: [MyINPulse-admin] + description: Retrieves a list of appointments scheduled for an admin in the future. + responses: + "200": + description: OK - List of upcoming appointments. + content: + application/json: + schema: + type: array + items: + $ref: "./main.yaml#/components/schemas/appointment" + "404": + description: no appointments found. + "401": + description: Unauthorized. + /admin/appointments/report/{appointmentId}: post: operationId: createAppointmentReport diff --git a/documentation/openapi/src/bundled.yaml b/documentation/openapi/src/bundled.yaml deleted file mode 100644 index a53778e..0000000 --- a/documentation/openapi/src/bundled.yaml +++ /dev/null @@ -1,912 +0,0 @@ -openapi: 3.0.3 -info: - title: MyInpulse Backend API - description: 'This serves as an OpenAPI documentation for the MyInpulse backend service, covering operations for Entrepreneurs, Admins, and shared functionalities.' - version: 0.2.1 -tags: - - name: Entrepreneurs API - description: API endpoints primarily for Entrepreneur users. - - name: Admin API - description: API endpoints restricted to Admin users for management tasks. - - name: Shared API - description: API endpoints accessible by both Entrepreneurs and Admins. - - name: Unauth API - description: API endpoints related to user account management. -components: - schemas: - user: - type: object - properties: - idUser: - type: integer - description: Unique identifier for the user. - example: 101 - userSurname: - type: string - description: User's surname (last name). - example: Doe - userName: - type: string - description: User's given name (first name). - example: John - primaryMail: - type: string - format: email - description: User's primary email address. - example: john.doe@example.com - secondaryMail: - type: string - format: email - description: User's secondary email address (optional). - example: j.doe@personal.com - phoneNumber: - type: string - description: User's phone number. - example: '+33612345678' - user-entrepreneur: - allOf: - - $ref: '#/components/schemas/user' - - type: object - properties: - school: - type: string - description: The school the entrepreneur attends/attended. - example: ENSEIRB-MATMECA - course: - type: string - description: The specific course or program of study. - example: Electronics - sneeStatus: - type: boolean - description: Indicates if the user has SNEE status (Statut National d'Étudiant-Entrepreneur). - example: true - example: - idUser: 101 - userSurname: Doe - userName: John - primaryMail: john.doe@example.com - secondaryMail: j.doe@personal.com - phoneNumber: '+33612345678' - school: ENSEIRB-MATMECA - course: Electronics - sneeStatus: true - user-admin: - allOf: - - $ref: '#/components/schemas/user' - example: - idUser: 55 - userSurname: Admin - userName: Super - primaryMail: admin@myinpulse.com - phoneNumber: '+33512345678' - sectionCell: - type: object - description: Represents a cell (like a sticky note) within a specific section of a project's Lean Canvas. - properties: - idSectionCell: - type: integer - description: Unique identifier for the section cell. - example: 508 - sectionId: - type: integer - description: 'Identifier of the Lean Canvas section this cell belongs to (e.g., 1 for Problem, 2 for Solution).' - example: 1 - contentSectionCell: - type: string - description: The text content of the section cell. - example: Users find it hard to track project progress. - modificationDate: - type: string - format: date - description: The date when this cell was last modified. - example: 'yyyy-MM-dd HH:mm' - project: - type: object - description: Represents a project being managed or developed. - properties: - idProject: - type: integer - description: Unique identifier for the project. - example: 12 - projectName: - type: string - description: The name of the project. - example: MyInpulse Mobile App - creationDate: - type: string - format: date - description: The date when the project was created in the system. - example: 'yyyy-MM-dd HH:mm' - logo: - type: string - format: byte - description: Base64 encoded string representing the project logo image. - example: /*Base64 encoded string representing the project logo image*/ - status: - type: string - enum: - - PENDING - - ACTIVE - - ENDED - - ABORTED - - REJECTED - description: 'Corresponds to a status enum internal to the backend, it''s value in in requests incoming to the server should be ignored as the client shouldn''t be specifying them.' - example: NaN - report: - type: object - description: Represents a report associated with an appointment. - properties: - idReport: - type: integer - description: Unique identifier for the report. - example: 987 - reportContent: - type: string - description: The textual content of the report. Could be plain text or Markdown (specify if known). - example: Discussed roadmap milestones for Q3. Agreed on preliminary UI mockups. - appointment: - type: object - description: Represents a scheduled meeting or appointment. - properties: - idAppointment: - type: integer - description: Unique identifier for the appointment. - example: 303 - appointmentDate: - type: string - format: date - description: The date of the appointment. - example: '2025-05-10' - appointmentTime: - type: string - format: time - description: The time of the appointment (local time). - example: '14:30:00' - appointmentDuration: - type: string - description: 'Duration of the appointment in ISO 8601 duration format (e.g., PT1H30M for 1 hour 30 minutes).' - example: PT1H - appointmentPlace: - type: string - description: Location or meeting link for the appointment. - example: 'Meeting Room 3 / https://meet.example.com/abc-def-ghi' - appointmentSubject: - type: string - description: The main topic or subject of the appointment. - example: Q3 Roadmap Planning - joinRequest: - type: object - description: Represents a request from an entrepreneur to join an already existing project. - properties: - idProject: - type: integer - description: the ID of the project the entrepreneur wants to join. - example: 42 - entrepreneur: - $ref: '#/components/schemas/user-entrepreneur' - projectDecision: - type: object - description: Represents a decision from an admin to accept a pending project. - properties: - projectId: - type: integer - description: The ID of the project the entrepreneur wants to join. - example: 12 - adminId: - type: integer - description: The ID of the project the admin who will supervise the project in case of admission. - example: 2 - isAccepted: - type: boolean - description: The boolean value of the decision. - example: 'true' - joinRequestDecision: - type: object - description: Represents a decision from an admin to accept a pending project join request. - properties: - isAccepted: - type: boolean - description: The boolean value of the decision. - example: 'true' - securitySchemes: - MyINPulse: - type: oauth2 - description: OAuth2 authentication using Keycloak. - flows: - implicit: - authorizationUrl: '{keycloakBaseUrl}/realms/{keycloakRealm}/protocol/openid-connect/auth' - scopes: - MyINPulse-admin: Grants administrator access. - MyINPulse-entrepreneur: Grants standard entrepreneur user access. -servers: - - url: '{serverProtocol}://{serverHost}:{serverPort}' - description: API Server - variables: - serverProtocol: - enum: - - http - - https - default: http - serverHost: - default: localhost - serverPort: - enum: - - '8081' - default: '8081' - keycloakBaseUrl: - default: 'http://localhost:7080' - description: Base URL for the Keycloak server. - keycloakRealm: - default: MyInpulseRealm - description: Keycloak realm name. -paths: - /unauth/finalize: - post: - summary: Finalize account setup using authentication token - description: |- - Completes the user account creation/setup process in the MyInpulse system. - This endpoint requires the user to be authenticated via Keycloak (e.g., after initial login). - User details (name, email, etc.) are extracted from the authenticated user's token (e.g., Keycloak JWT). - No request body is needed. The account is marked as pending admin validation upon successful finalization. - tags: - - Unauth API - responses: - '201': - description: Created - Account finalized and pending admin validation. Returns the user profile. - '400': - description: Bad Request - Problem processing the token or user data derived from it. - '401': - description: Unauthorized - Valid authentication token required. - '/unauth/request-join/{projectId}': - post: - summary: Request to join an existing project - description: Submits a request for the authenticated user (keycloack authenticated) to join the project specified by projectId. Their role is then changed to entrepreneur in server and Keycloak. This requires approval from a project admin. - tags: - - Unauth API - parameters: - - in: path - name: projectId - required: true - schema: - type: integer - description: The ID of the project to request joining. - example: 15 - responses: - '202': - description: Accepted - Join request submitted and pending approval. - '400': - description: Bad Request - Invalid project ID format or already member/request pending. - '401': - description: Unauthorized. - /admin/pending-accounts: - get: - operationId: getPendingAccounts - summary: Get accounts awaiting validation - description: Retrieves a list of entrepreneur user accounts that are pending admin validation. - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - responses: - '200': - description: OK - List of pending accounts returned. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/user-entrepreneur' - '401': - description: Unauthorized. - '/admin/accounts/validate/{userId}': - post: - operationId: validateUserAccount - summary: Validate a pending user account - description: Marks the user account specified by userId as validated/active. - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - parameters: - - in: path - name: userId - required: true - schema: - type: integer - description: The ID of the user account to validate. - example: 102 - responses: - '204': - description: No Content - Account validated successfully. - '400': - description: Bad Request - Invalid user ID format. - '401': - description: Unauthorized. - /admin/request-join: - get: - operationId: getPendingProjects - summary: Get entrepreneurs project join requests - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - description: Retrieves a list of pending requests from entrepreneurs to join an existing project. - responses: - '200': - description: OK - List of pending project join requests. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/joinRequest' - '401': - description: Unauthorized. - '/admin/request-join/decision/{joinRequestId}': - post: - summary: Approve or reject a pending project join request - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - parameters: - - in: path - name: joinRequestId - required: true - schema: - type: integer - description: The ID of the pending join request to decide upon. - description: |- - Allows an admin to make a decision on an ebtrepreneur's request to join an existing project awaiting validation. - If approved (isAccepted=true), the entrepreneur is linked to the project with ID joinRequestId. - If rejected (isAccepted=false), the pending request data might be archived or deleted based on business logic. - responses: - '200': - description: 'OK - No Content, decision processed successfully..' - content: - application/json: - $ref: '#/components/schemas/joinRequestDecision' - '400': - description: 'Bad Request - Invalid input (e.g., missing decision).' - '401': - description: Unauthorized. - /admin/projects: - get: - operationId: getAdminProjects - summary: Get projects associated with the admin - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - description: 'Retrieves a list of projects managed by the requesting admin, including details for overview.' - responses: - '200': - description: OK - List of projects returned successfully. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/project' - '400': - description: 'Bad Request - Invalid project data provided (e.g., missing required fields).' - '401': - description: Unauthorized - Authentication required or invalid token. - post: - operationId: addProjectManually - summary: Manually add a new project - description: 'Creates a new project with the provided details. (NOTE that this meant for manually inserting projects, for example importing already existing projects).' - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - requestBody: - required: true - description: Project details to create. `idProject` and `creationDate` will be ignored if sent and set by the server. - content: - application/json: - schema: - $ref: '#/components/schemas/project' - responses: - '201': - description: Created - Project added successfully. Returns the created project. - content: - application/json: - schema: - $ref: '#/components/schemas/project' - '400': - description: 'Bad Request - Invalid project data provided (e.g., missing required fields).' - '401': - description: Unauthorized. - /admin/projects/pending: - get: - operationId: getPendingProjects - summary: Get projects awaiting validation - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - description: Retrieves a list of projects submitted by entrepreneurs that are pending admin approval. - responses: - '200': - description: OK - List of pending projects returned. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/project' - '401': - description: Unauthorized. - /admin/projects/pending/decision: - post: - operationId: decidePendingProject - summary: Approve or reject a pending project - tags: - - Admin API - description: |- - Allows an admin to make a decision on a project awaiting validation. - If approved (isAccepted=true), the project status changes, and it's linked to the involved users. - If rejected (isAccepted=false), the pending project data might be archived or deleted based on business logic. - security: - - MyINPulse: - - MyINPulse-admin - parameters: - - in: path - name: pendingProjectId - required: true - schema: - type: integer - description: The ID of the pending project to decide upon. - example: 7 - requestBody: - required: true - description: Decision payload. - content: - application/json: - schema: - $ref: '#/components/schemas/projectDecision' - responses: - '204': - description: No Content - Decision processed successfully. - '400': - description: 'Bad Request - Invalid input (e.g., missing decision).' - '401': - description: Unauthorized. - '/admin/appointments/report/{appointmentId}': - post: - operationId: createAppointmentReport - summary: Create a report for an appointment - description: 'Creates and links a new report (e.g., meeting minutes) to the specified appointment using the provided content.' - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - parameters: - - in: path - name: appointmentId - required: true - schema: - type: integer - description: ID of the appointment to add a report to. - example: 303 - requestBody: - required: true - description: Report content. `idReport` will be ignored if sent. - content: - application/json: - schema: - $ref: '#/components/schemas/report' - responses: - '201': - description: Created - Report created and linked successfully. Returns the created report. - content: - application/json: - schema: - $ref: '#/components/schemas/report' - '400': - description: 'Bad Request - Invalid input (e.g., missing content, invalid appointment ID format).' - '401': - description: Unauthorized. - put: - operationId: updateAppointmentReport - summary: Update an existing appointment report - description: Updates the content of an existing report linked to the specified appointment. Replaces the entire report content. - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - parameters: - - in: path - name: appointmentId - required: true - schema: - type: integer - description: ID of the appointment whose report needs updating. - example: 303 - requestBody: - required: true - description: New report content. `idReport` in the body should match the existing report's ID or will be ignored. - content: - application/json: - schema: - $ref: '#/components/schemas/report' - responses: - '200': - description: OK - Report updated successfully. Returns the updated report. - content: - application/json: - schema: - $ref: '#/components/schemas/report' - '400': - description: 'Bad Request - Invalid input (e.g., missing content).' - '401': - description: Unauthorized. - '/admin/projects/{projectId}': - delete: - operationId: removeProject - summary: Remove a project - description: Permanently removes the project specified by projectId and potentially related data (use with caution). - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - parameters: - - in: path - name: projectId - required: true - schema: - type: integer - description: The ID of the project to remove. - example: 12 - responses: - '204': - description: No Content - Project removed successfully. - '400': - description: Bad Request - Invalid project ID format. - '401': - description: Unauthorized. - '/admin/make-admin/{userId}': - post: - operationId: grantAdminRights - summary: Grant admin rights to a user - tags: - - Admin API - security: - - MyINPulse: - - MyINPulse-admin - description: Elevates the specified user to also have administrator privileges. Assumes the user already exists. - parameters: - - in: path - name: userId - required: true - schema: - type: integer - description: The ID of the user to grant admin rights. - example: 103 - responses: - '204': - description: No Content - Admin rights granted successfully. - '400': - description: Bad Request - Invalid user ID format or user is already an admin. - '401': - description: Unauthorized. - '/shared/projects/sectionCells/{projectId}/{sectionId}/{date}': - get: - operationId: getSectionCellsByDate - summary: Get project section cells modified on a specific date - tags: - - Shared API - security: - - MyINPulse: - - MyINPulse-entrepreneur - - MyINPulse-admin - description: 'Retrieves section cells belonging to a specific section of a project, filtered by the last modification date. Requires user to have access to the project.' - parameters: - - in: path - name: projectId - required: true - schema: - type: integer - description: ID of the project. - - in: path - name: sectionId - required: true - schema: - type: integer - description: ID of the Lean Canvas section. - - in: path - name: date - required: true - schema: - type: string - format: date - description: 'The modification date to filter by (YYYY-MM-DD HH:mm).' - responses: - '200': - description: OK - List of section cells matching the criteria. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/sectionCell' - '400': - description: Bad Request - Invalid parameter format. - '401': - description: Unauthorized. - '/shared/projects/entrepreneurs/{projectId}': - get: - operationId: getProjectEntrepreneurs - summary: Get entrepreneurs associated with a project - tags: - - Shared API - security: - - MyINPulse: - - MyINPulse-entrepreneur - - MyINPulse-admin - description: Retrieves a list of entrepreneur users associated with the specified project. Requires access to the project. - parameters: - - in: path - name: projectId - required: true - schema: - type: integer - description: ID of the project. - responses: - '200': - description: OK - List of entrepreneurs. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/user-entrepreneur' - '401': - description: Unauthorized. - '403': - description: Forbidden - User does not have access to this project. - '404': - description: Not Found - Project not found. - '/shared/projects/admin/{projectId}': - get: - operationId: getProjectAdmin - summary: Get admin associated with a project - tags: - - Shared API - security: - - MyINPulse: - - MyINPulse-entrepreneur - - MyINPulse-admin - description: Retrieves a list of admin users associated with the specified project. Requires access to the project. - parameters: - - in: path - name: projectId - required: true - schema: - type: integer - description: ID of the project. - responses: - '200': - description: OK - admin. - content: - application/json: - schema: - $ref: '#/components/schemas/user-admin' - '401': - description: Unauthorized. - '403': - description: Forbidden - User does not have access to this project. - '404': - description: Not Found - Project not found. - '/shared/projects/appointments/{projectId}': - get: - operationId: getProjectAppointments - summary: Get appointments related to a project - tags: - - Shared API - security: - - MyINPulse: - - MyINPulse-entrepreneur - - MyINPulse-admin - description: Retrieves a list of appointments associated with the specified project. Requires access to the project. - parameters: - - in: path - name: projectId - required: true - schema: - type: integer - description: ID of the project. - responses: - '200': - description: OK - List of appointments. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/appointment' - '401': - description: Unauthorized. - '/shared/appointments/report/{appointmentId}': - get: - operationId: getAppointmentReport - summary: Get the report for an appointment - tags: - - Shared API - security: - - MyINPulse: - - MyINPulse-entrepreneur - - MyINPulse-admin - description: Retrieves the report associated with a specific appointment. Requires user to have access to the appointment/project. - parameters: - - in: path - name: appointmentId - required: true - schema: - type: integer - description: ID of the appointment. - responses: - '200': - description: OK - Report PDF returned. - content: - application/pdf: - schema: - schema: null - type: string - format: binary - '401': - description: Unauthorized. - /shared/appointments/request: - post: - operationId: requestAppointment - summary: Request a new appointment - tags: - - Shared API - security: - - MyINPulse: - - MyINPulse-entrepreneur - - MyINPulse-admin - description: 'Allows a user (entrepreneur or admin) to request a new appointment, potentially with another user or regarding a project. Details in the body. The request might need confirmation or create a pending appointment.' - requestBody: - required: true - description: Details of the appointment request. - content: - application/json: - schema: - $ref: '#/components/schemas/appointment' - example: - value: - appointmentDate: '2025-06-01' - appointmentTime: '10:00:00' - appointmentDuration: PT1H - appointmentPlace: Online - appointmentSubject: Follow-up on prototype - responses: - '202': - description: Accepted - Appointment request submitted. - content: - application/json: - schema: - $ref: '#/components/schemas/appointment' - '400': - description: Bad Request - Invalid appointment details. - '401': - description: Unauthorized. - /entrepreneur/projects/request: - post: - operationId: requestProjectCreation - summary: Request creation and validation of a new project - tags: - - Entrepreneurs API - description: |- - Submits a request for a new project. The project details are provided in the request body. - The requesting entrepreneur (identified by the token) will be associated to it. - The project is created with a 'pending' status, awaiting admin approval. - security: - - MyINPulse: - - MyINPulse-entrepreneur - requestBody: - required: true - description: 'Project details for the request. `status`, `creationDate` are required by the model when being sent but is ignored by the server; primarily expects a valid `projectId`, `name`, `logo`.' - content: - application/json: - schema: - $ref: '#/components/schemas/project' - responses: - '202': - description: Accepted - Project creation request received and is pending validation. - '400': - description: 'Bad Request - Invalid input (e.g., missing name).' - '401': - description: Unauthorized. - /entrepreneur/sectionCells: - post: - operationId: addSectionCell - summary: Add a cell to a Lean Canvas section - description: Adds a new cell (like a sticky note) with the provided content to a specific section of the entrepreneur's project's Lean Canvas. Assumes project context is known based on user's token. `idSectionCell` and `modificationDate` are server-generated so they're values in the request are ignored by the server. - tags: - - Entrepreneurs API - security: - - MyINPulse: - - MyINPulse-entrepreneur - requestBody: - required: true - description: Section cell details. `idSectionCell` and `modificationDate` will be ignored if sent. - content: - application/json: - schema: - $ref: '#/components/schemas/sectionCell' - responses: - '201': - description: Created - Section cell added successfully. Returns the created cell. - '400': - description: 'Bad Request - Invalid input (e.g., missing content or sectionId).' - '401': - description: Unauthorized. - '/entrepreneur/sectionCells/{sectionCellId}': - put: - operationId: modifySectionCell - summary: Modify data in a Lean Canvas section cell - description: Updates the content of an existing Lean Canvas section cell specified by `sectionCellId`. The server "updates" (it keeps a record of the previous version to keep a history of all the sectionCells and creates a new ones with the specified modifications) the `modificationDate`. - tags: - - Entrepreneurs API - security: - - MyINPulse: - - MyINPulse-entrepreneur - parameters: - - in: path - name: sectionCellId - required: true - schema: - type: integer - description: The ID of the section cell to modify. - example: 508 - requestBody: - required: true - description: Updated section cell details. `sectionCellId` "the path parameter" is the only id that's consideredn the `sectionCellId` id in the request body is ignored. `modificationDate` should be updated by the server. - content: - application/json: - schema: - $ref: '#/components/schemas/sectionCell' - responses: - '200': - description: OK - Section cell updated successfully. Returns the updated cell. - '400': - description: Bad Request - Invalid input or ID mismatch. - '401': - description: Unauthorized. - delete: - operationId: removeSectionCell - summary: Remove a Lean Canvas section cell - description: Deletes the Lean Canvas section cell specified by `sectionCellId`. - tags: - - Entrepreneurs API - security: - - MyINPulse: - - MyINPulse-entrepreneur - parameters: - - in: path - name: sectionCellId - required: true - schema: - type: integer - description: The ID of the section cell to remove. - example: 509 - responses: - '204': - description: No Content - Section cell removed successfully. - '400': - description: Bad Request - Invalid ID format. - '401': - description: Unauthorized. diff --git a/documentation/openapi/src/entrepreneurApi.yaml b/documentation/openapi/src/entrepreneurApi.yaml index 6a87345..3041742 100644 --- a/documentation/openapi/src/entrepreneurApi.yaml +++ b/documentation/openapi/src/entrepreneurApi.yaml @@ -80,7 +80,7 @@ paths: responses: "200": description: OK - Section cell updated successfully. Returns the updated cell. - "400": + "404": description: Bad Request - Invalid input or ID mismatch. "401": description: Unauthorized. @@ -106,5 +106,7 @@ paths: description: No Content - Section cell removed successfully. "400": description: Bad Request - Invalid ID format. + "404": + description: Bad Request - sectionCell not found. "401": description: Unauthorized. \ No newline at end of file diff --git a/documentation/openapi/src/main.yaml b/documentation/openapi/src/main.yaml index 6836818..4c87d94 100644 --- a/documentation/openapi/src/main.yaml +++ b/documentation/openapi/src/main.yaml @@ -102,9 +102,11 @@ paths: $ref: "./adminApi.yaml#/paths/~1admin~1projects~1pending~1decision" /admin/appointments/report/{appointmentId}: $ref: "./adminApi.yaml#/paths/~1admin~1appointments~1report~1{appointmentId}" + /admin/appointments/upcoming: + $ref: "./adminApi.yaml#/paths/~1admin~1appointments~1upcoming" /admin/projects/{projectId}: $ref: "./adminApi.yaml#/paths/~1admin~1projects~1{projectId}" - /admin/make-admin/{userId}: # Renamed for clarity + /admin/make-admin/{userId}: $ref: "./adminApi.yaml#/paths/~1admin~1make-admin~1{userId}" # ____ _ _ _ ____ ___ diff --git a/documentation/openapi/src/sharedApi.yaml b/documentation/openapi/src/sharedApi.yaml index 5eef81f..59108b7 100644 --- a/documentation/openapi/src/sharedApi.yaml +++ b/documentation/openapi/src/sharedApi.yaml @@ -1,5 +1,6 @@ # Shared API Endpoints -paths: +paths: + /shared/projects/sectionCells/{projectId}/{sectionId}/{date}: get: operationId: getSectionCellsByDate diff --git a/documentation/openapi/src/unauthApi.yaml b/documentation/openapi/src/unauthApi.yaml index 6368e13..ad4709e 100644 --- a/documentation/openapi/src/unauthApi.yaml +++ b/documentation/openapi/src/unauthApi.yaml @@ -42,7 +42,9 @@ paths: "202": description: Accepted - Join request submitted and pending approval. "400": - description: Bad Request - Invalid project ID format or already member/request pending. + description: Bad Request - Invalid project ID format + "409": + description: Already member/request pending. "401": description: Unauthorized. /unauth/request-admin-role: