fix: Doc added (for me)
This commit is contained in:
		
							
								
								
									
										741
									
								
								Documentation/openapi/main.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										741
									
								
								Documentation/openapi/main.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,741 @@ | ||||
| openapi: 3.0.3 | ||||
| info: | ||||
|   title: MyInpulse Backend Api | ||||
|   description: this document servers as a documentation for the backend api.   | ||||
|   version: 0.0.0 | ||||
|  | ||||
| tags: | ||||
|   - name: Entrepreneurs API | ||||
|     description: La partie de l'api dédiée aux entrepreneurs | ||||
|   - name: Admin API | ||||
|     description: La partie de l'api dédiée aux entrepreneurs | ||||
|   - name: Shared API | ||||
|     description: La partie de l'api dédiée aux entrepreneurs et admins | ||||
|  | ||||
|  | ||||
| components: | ||||
|   schemas: | ||||
|     user: | ||||
|       type: object | ||||
|       properties: | ||||
|         nom: | ||||
|           type: string | ||||
|         prenom: | ||||
|           type: string | ||||
|         email: | ||||
|           type: string | ||||
|           example: "example@exmaple.com" | ||||
|         secondaryEmail: | ||||
|           type: string | ||||
|           example: "example@exmaple.com" | ||||
|         tel: | ||||
|           type: string | ||||
|           example: "0612345678" | ||||
|     user-entrepreneur: | ||||
|       type: object | ||||
|       properties: | ||||
|         user: | ||||
|           $ref: "#/components/schemas/user" | ||||
|         entrepreneur: | ||||
|           type: object | ||||
|           properties: | ||||
|             ecole:  | ||||
|               type: string | ||||
|               example: "enseirb" | ||||
|             filiere: | ||||
|               type: string | ||||
|               example: "info" | ||||
|             status: | ||||
|               type: boolean | ||||
|               example: false | ||||
|     user-admin: | ||||
|       type: object | ||||
|       properties: | ||||
|         admin: | ||||
|           $ref: "#/components/schemas/user" | ||||
|  | ||||
|   securitySchemes: | ||||
|       MyINPulse: | ||||
|         type: oauth2 | ||||
|         flows: | ||||
|           implicit: | ||||
|             authorizationUrl: https://petstore3.swagger.io/oauth/authorize | ||||
|             scopes: | ||||
|               MyINPulse-admin: Administrateur | ||||
|               MyINPulse-entrepreneur: Utilisateur | ||||
|  | ||||
| paths: | ||||
|  | ||||
| #          _    ____  __  __ ___ _   _      _    ____ ___  | ||||
| #         / \  |  _ \|  \/  |_ _| \ | |    / \  |  _ \_ _| | ||||
| #        / _ \ | | | | |\/| || ||  \| |   / _ \ | |_) | |  | ||||
| #       / ___ \| |_| | |  | || || |\  |  / ___ \|  __/| |  | ||||
| #      /_/   \_\____/|_|  |_|___|_| \_| /_/   \_\_|  |___| | ||||
| # | ||||
|  | ||||
|   /admin/projects: | ||||
|     get: | ||||
|       summary: Retourne la liste of projets associés à l'admin | ||||
|       tags:  | ||||
|         - Admin API  | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|             - MyINPulse-admin | ||||
|       description: | ||||
|         JSON array of who's elements are objects containing necessary information for the view  | ||||
|         (project name, entrepreneur names, etc..) | ||||
|         of the projects an admin is watching over. | ||||
|       responses: | ||||
|         "200": | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: array | ||||
|                 items: | ||||
|                   type: object | ||||
|                   properties: | ||||
|                     name: | ||||
|                       type: string | ||||
|                     E_names: | ||||
|                       type: string | ||||
|                       description: entrepreneur names | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is missing or invalid | ||||
|   /admin/projects/pending/decision: | ||||
|     post: | ||||
|       summary: valider un projet en attente de validation | ||||
|       tags: | ||||
|         - Admin API | ||||
|       description: | ||||
|         if the request is accepted the status of the | ||||
|         project is changed to ongoing, entrepreneur | ||||
|         account is confirmed and the project is linked | ||||
|         to the admin accepting the request and the | ||||
|         entrepreneur requesting it. Else the pending | ||||
|         project and user info are deleted. | ||||
|       security: | ||||
|           - MyINPulse: | ||||
|               - MyINPulse-admin | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 pedingProjectId:  | ||||
|                   type: integer | ||||
|                 decision: | ||||
|                   type: boolean | ||||
|                  | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|              | ||||
|   /admin/projects/add: | ||||
|     post: | ||||
|       summary: Ajout manuel d'un projet | ||||
|       description: | ||||
|         Adds a project with the | ||||
|         inputed details | ||||
|       tags: | ||||
|         - Admin API | ||||
|       security: | ||||
|           - MyINPulse: | ||||
|               - MyINPulse-admin | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 name: | ||||
|                   type: string | ||||
|                 founder: | ||||
|                   $ref: "#/components/schemas/user-entrepreneur" | ||||
|                  | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|    | ||||
|   /admin/appointments/report/{appointmentId}: | ||||
|     put: | ||||
|       summary: enregistrer un rapport du rendez-vous | ||||
|       description: | ||||
|         Generate a PDF file formatted  | ||||
|         from input text and links it  | ||||
|         to the appointement. | ||||
|       tags: | ||||
|         - Admin API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|           - MyINPulse-admin | ||||
|       parameters: | ||||
|         - in: path | ||||
|           name: appointmentId | ||||
|           required: true | ||||
|           schema: | ||||
|             type: integer | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 title: | ||||
|                   type: string | ||||
|                 body: | ||||
|                   type: string | ||||
|                 conclusion: | ||||
|                   type: string | ||||
|          | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|                     missing or invalid | ||||
|     post: | ||||
|       summary: modifier un rapport déja éxistant du rendez-vous | ||||
|       description: | ||||
|         Modifies the report file to input  | ||||
|         text and links it to the appointement. | ||||
|       tags: | ||||
|         - Admin API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|           - MyINPulse-admin | ||||
|       parameters: | ||||
|         - in: path | ||||
|           name: appointmentId | ||||
|           required: true | ||||
|           schema: | ||||
|             type: integer | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 title: | ||||
|                   type: string | ||||
|                 body: | ||||
|                   type: string | ||||
|                 conclusion: | ||||
|                   type: string | ||||
|          | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|                     missing or invalid | ||||
|  | ||||
|  | ||||
|   /admin/projects/remove/{projectId}: | ||||
|     delete: | ||||
|       summary: supression d'un project | ||||
|       description: | ||||
|         Removes the project | ||||
|         with the inputed id projectId | ||||
|       tags: | ||||
|         - Admin API | ||||
|       security: | ||||
|           - MyINPulse: | ||||
|               - MyINPulse-admin | ||||
|       parameters: | ||||
|         - in: path | ||||
|           name: projectId | ||||
|           required: true | ||||
|           schema: | ||||
|             type: integer | ||||
|            | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|       | ||||
|  | ||||
|   /admin/projects/pending: | ||||
|     get: | ||||
|       summary: Retourne la liste des projets en attente de validation | ||||
|       tags:  | ||||
|         - Admin API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|             - MyINPulse-admin | ||||
|       description: | ||||
|         JSON array of who's elements are objects containing | ||||
|         necessary information for the view (project name, | ||||
|         entrepreneur names, etc..) of all pending projects. | ||||
|       responses: | ||||
|         "200": | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: array | ||||
|                 items: | ||||
|                   type: object | ||||
|                   properties: | ||||
|                     name: | ||||
|                       type: string | ||||
|                     founder: | ||||
|                       $ref: "#/components/schemas/user-entrepreneur" | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is missing or invalid | ||||
|  | ||||
| # | ||||
| #       ____  _                        _      _    ____ ___  | ||||
| #      / ___|| |__   __ _ _ __ ___  __| |    / \  |  _ \_ _| | ||||
| #      \___ \| '_ \ / _` | '__/ _ \/ _` |   / _ \ | |_) | |  | ||||
| #       ___) | | | | (_| | | |  __/ (_| |  / ___ \|  __/| |  | ||||
| #      |____/|_| |_|\__,_|_|  \___|\__,_| /_/   \_\_|  |___| | ||||
| #                    | ||||
|  | ||||
|   /shared/appointments/upcoming: | ||||
|     get: | ||||
|       summary: Retourne la list des prochains rendez-vous de l'utilisateur | ||||
|       tags:  | ||||
|         - Shared API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|             - MyINPulse-admin | ||||
|             - MyINPulse-entrepreneur | ||||
|       description: | ||||
|         JSON array of upcoming appointment data (name, date, time etc..) for a user. | ||||
|       responses: | ||||
|         "200": | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: array | ||||
|                 items: | ||||
|                   type: object | ||||
|                   properties: | ||||
|                     name: | ||||
|                       type: string | ||||
|                     date: | ||||
|                       type: string | ||||
|                     time: | ||||
|                       type: string | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is missing or invalid         | ||||
|  | ||||
|   /shared/projects/lcsection/{projectId}/{title}/{date}: | ||||
|       get: | ||||
|         summary: Retourne la liste de sections de LC avec un titre donné | ||||
|         tags:  | ||||
|           - Shared API | ||||
|         security: | ||||
|         - MyINPulse: | ||||
|             - MyINPulse-admin | ||||
|             - MyINPulse-entrepreneur | ||||
|         description: | ||||
|           JSON array containing Lean Canvas  | ||||
|           section data with a title for the | ||||
|           current date (or given date if the | ||||
|           date parameter is passed) | ||||
|         parameters: | ||||
|           - in: path | ||||
|             required: true | ||||
|             name: projectId | ||||
|             schema: | ||||
|               type: integer | ||||
|           - in: path | ||||
|             required: true | ||||
|             description: this number can be 1, 2,...,8. It is associated with the title of the lcsection | ||||
|             name: title | ||||
|             schema: | ||||
|               type: integer | ||||
|               enum: [1, 2, 3, 4, 5, 6, 7, 8]  | ||||
|              | ||||
|           - in: path | ||||
|             required: true | ||||
|             name: date | ||||
|             description: the date corresponding to the wanted version of lc section. "Nan" for the latest version | ||||
|             example: "NaN" | ||||
|             schema: | ||||
|               type: string | ||||
|                | ||||
|         responses: | ||||
|           "200": | ||||
|             description: OK | ||||
|             content: | ||||
|               application/json: | ||||
|                 schema: | ||||
|                   type: array | ||||
|                   items: | ||||
|                     type: object | ||||
|                     properties: | ||||
|                       section: | ||||
|                         type: string | ||||
|                       txt: | ||||
|                         type: string | ||||
|                       time: | ||||
|                         type: string | ||||
|           "400": | ||||
|             description: Bad request | ||||
|           "401": | ||||
|             description: Authorization information is missing or invalid | ||||
|    | ||||
|   /shared/projects/entrepreneurs/{projectId}: | ||||
|     get: | ||||
|       summary: Retourne la liste d'entrepreneurs associée à un projet donné | ||||
|       tags:  | ||||
|           - Shared API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|             - MyINPulse-admin | ||||
|             - MyINPulse-entrepreneur | ||||
|       description: | ||||
|         JSON array of entrepreneur | ||||
|         names associated with a project | ||||
|       parameters: | ||||
|           - in: path | ||||
|             name: projectId | ||||
|             schema: | ||||
|               type: integer | ||||
|             required: true | ||||
|       responses: | ||||
|         "200": | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: array | ||||
|                 items: | ||||
|                   $ref: "#/components/schemas/user-entrepreneur" | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is missing or invalid | ||||
|    | ||||
|   /shared/projects/admin/{projectId}: | ||||
|     get: | ||||
|       summary: Retourne les informations de l'admin qui accompagne le projet | ||||
|       tags:  | ||||
|           - Shared API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|             - MyINPulse-admin | ||||
|             - MyINPulse-entrepreneur | ||||
|       description:  | ||||
|         JSON object containing information (name, gmail, tel, etc..)  | ||||
|         the admin supervising the project with id projectID. | ||||
|       parameters: | ||||
|             - in: path | ||||
|               name: projectId | ||||
|               schema: | ||||
|                 type: integer | ||||
|               required: true | ||||
|       responses: | ||||
|         "200": | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 $ref: "#/components/schemas/user-admin" | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|    | ||||
|   /shared/projects/appointments/{projectId}: | ||||
|     get: | ||||
|       summary: Retourne les rendez-vous du projet  | ||||
|       tags:  | ||||
|           - Shared API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|             - MyINPulse-admin | ||||
|             - MyINPulse-entrepreneur | ||||
|       description:  | ||||
|         JSON array of upcoming and past appointment  | ||||
|         data for the project with id projectID. | ||||
|       parameters: | ||||
|         - in: path | ||||
|           name: projectId | ||||
|           schema: | ||||
|             type: integer | ||||
|           required: true | ||||
|       responses: | ||||
|         "200": | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: array | ||||
|                 items: | ||||
|                   type: object | ||||
|                   properties: | ||||
|                     appointementId: | ||||
|                       type: integer | ||||
|                     name:  | ||||
|                       type: string | ||||
|                     date:  | ||||
|                       type: string | ||||
|                     time:  | ||||
|                       type: string | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|   /shared/projects/appointments/report/{apointementId}: | ||||
|     get: | ||||
|       summary: Retourne le rapport pdf du rendez-vous | ||||
|       tags:  | ||||
|           - Shared API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|             - MyINPulse-admin | ||||
|             - MyINPulse-entrepreneur | ||||
|       description: | ||||
|         PDF file containing the ap- | ||||
|         pointment report | ||||
|       parameters: | ||||
|         - in: path | ||||
|           name: apointementId | ||||
|           schema: | ||||
|             type: integer | ||||
|           required: true | ||||
|       responses: | ||||
|         "200": | ||||
|           description: OK | ||||
|           content: | ||||
|             application/pdf: | ||||
|               schema: | ||||
|                 type: string | ||||
|                 format: binary | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|    | ||||
|   /shared/appointments/request: | ||||
|     post: | ||||
|       summary: demander un rendez-vous | ||||
|       description: | ||||
|         will add an appointement request request by the applicant  | ||||
|         to have an appointment to be confirmed or denied by the | ||||
|         specified participants of the appointement. | ||||
|       tags: | ||||
|         - Shared API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|           - MyINPulse-entrepreneur | ||||
|           - MyINPulse-admin | ||||
|       requestBody: | ||||
|         description: \"participants\" property is an array containing userids of the participants in the appointement | ||||
|         required: true | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 title: | ||||
|                   type: string | ||||
|                 start_time: | ||||
|                   type: string | ||||
|                 end_time: | ||||
|                   type: string | ||||
|                 place: | ||||
|                   type: string | ||||
|                 applicantId: | ||||
|                   type: integer | ||||
|                 participants: | ||||
|                   #/* */ | ||||
|                   type: array | ||||
|                   items: | ||||
|                     type: integer | ||||
|                      | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|                     missing or invalid         | ||||
|    | ||||
|  | ||||
|  | ||||
| #      _____ _   _ _____ ____  _____ ____  ____  _____ _   _ _____ _   _ ____   | ||||
| #     | ____| \ | |_   _|  _ \| ____|  _ \|  _ \| ____| \ | | ____| | | |  _ \  | ||||
| #     |  _| |  \| | | | | |_) |  _| | |_) | |_) |  _| |  \| |  _| | | | | |_) | | ||||
| #     | |___| |\  | | | |  _ <| |___|  __/|  _ <| |___| |\  | |___| |_| |  _ <  | ||||
| #     |_____|_|_\_| |_| |_| \_\_____|_|   |_| \_\_____|_| \_|_____|\___/|_| \_\ | ||||
| #        / \  |  _ \_ _|                                                        | ||||
| #       / _ \ | |_) | |                                                         | ||||
| #      / ___ \|  __/| |                                                         | ||||
| #     /_/   \_\_|  |___|                                                        | ||||
| # | ||||
|  | ||||
|                      | ||||
|   /entrepreneur/projects/request: | ||||
|     post: | ||||
|       summary: demander la création et validation d'un projet | ||||
|       tags: | ||||
|         - Entrepreneurs API | ||||
|       description:  | ||||
|         Adds project to pending projects  | ||||
|         to then be accepted or rejected by | ||||
|         an admin | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|           - MyINPulse-entrepreneur | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 name: | ||||
|                   type: string | ||||
|                 founder: | ||||
|                   $ref: "#/components/schemas/user-entrepreneur" | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|              | ||||
|             | ||||
|   /entrepreneur/lcsection/add/{projectId}: | ||||
|     post: | ||||
|       summary: ajouter une sections au LC | ||||
|       description:  | ||||
|         Adds input data to the user's LC  | ||||
|         with a specified title. | ||||
|       tags: | ||||
|        - Entrepreneurs API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|           - MyINPulse-entrepreneur | ||||
|       parameters: | ||||
|         - in: path | ||||
|           name: projectId | ||||
|           schema: | ||||
|             type: integer | ||||
|           required: true | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 title: | ||||
|                   type: string | ||||
|                 txt: | ||||
|                   type: string | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|   /entrepreneur/lcsection/modify/{sectionId}: | ||||
|     put: | ||||
|       summary: modifier les données d'une section LC | ||||
|       description:  | ||||
|         Modifies input Lean Canvas section by changing it to  | ||||
|         the information in the request body and changes the | ||||
|         time stamp. | ||||
|       tags: | ||||
|        - Entrepreneurs API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|           - MyINPulse-entrepreneur | ||||
|       parameters: | ||||
|         - in: path | ||||
|           name: sectionId | ||||
|           schema: | ||||
|             type: integer | ||||
|           required: true | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 title: | ||||
|                   type: string | ||||
|                 txt: | ||||
|                   type: string | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|             missing or invalid | ||||
|              | ||||
|   /entrepreneur/lcsection/remove/{sectionId}: | ||||
|     delete: | ||||
|       summary: supprimer une section LC. | ||||
|       description: | ||||
|         Deletes section from Lean Canvas | ||||
|       tags: | ||||
|         - Entrepreneurs API | ||||
|       security: | ||||
|         - MyINPulse: | ||||
|           - MyINPulse-entrepreneur | ||||
|       parameters: | ||||
|         - in: path | ||||
|           name: sectionId | ||||
|           schema: | ||||
|             type: integer | ||||
|           required: true | ||||
|       responses: | ||||
|         "200":  | ||||
|           description: OK | ||||
|         "400": | ||||
|           description: Bad request | ||||
|         "401": | ||||
|           description: Authorization information is | ||||
|                       missing or invalid | ||||
|    | ||||
|    | ||||
|    | ||||
|    | ||||
		Reference in New Issue
	
	Block a user