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