Gestion Horaire osamerilyabcp
This commit is contained in:
		| @ -11,39 +11,108 @@ servers: | ||||
| paths: | ||||
|   /ping: | ||||
|     get: | ||||
|       summary: Test if the api is up. | ||||
|       summary: Check the API status  | ||||
|       responses: | ||||
|         default: | ||||
|           description: Standard response to ping | ||||
|           description: pong  | ||||
|           content: | ||||
|             text/plain: | ||||
|               schema: | ||||
|                 type: string | ||||
|                 example: pong | ||||
|   /user: | ||||
|     put: | ||||
|       summary: create a new user | ||||
|   /users: | ||||
|     get: | ||||
|       summary: list all users  | ||||
|       tags: | ||||
|         - users | ||||
|         - SI | ||||
|       security: | ||||
|         - bearer: [] | ||||
|       responses: | ||||
|       parameters: | ||||
|         - in: query | ||||
|           name: type | ||||
|           required: false  | ||||
|           schema: | ||||
|             type: string | ||||
|             enum: [teacher, student, secretary] | ||||
|       responses:  | ||||
|         '200': | ||||
|           description: User created | ||||
|           description: OK | ||||
|           content:  | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: array | ||||
|                 items: | ||||
|                   $ref: "#/components/schemas/User" | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|   /user/{mat}: | ||||
|    | ||||
|   /user: | ||||
|     get: | ||||
|       summary: get user's info | ||||
|       summary: get informations about yourself  | ||||
|       tags: | ||||
|         - users | ||||
|         - Users | ||||
|       responses: | ||||
|         '200': | ||||
|           description: User found  | ||||
|           description: Ok | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 $ref: "#/components/schemas/User" | ||||
|     post: | ||||
|       summary: Create user | ||||
|       tags: | ||||
|         - Users | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               type: object  | ||||
|               properties: | ||||
|                 LastName:  | ||||
|                   type: string | ||||
|                 FirstName: | ||||
|                   type: string | ||||
|                 Email: | ||||
|                   type: string | ||||
|                 Address: | ||||
|                   $ref: "#/components/schemas/Address" | ||||
|                 BirthDate: | ||||
|                   type: string | ||||
|                   description: Follow the iso 8601 ("YYYY-MM-DD") | ||||
|               example: | ||||
|                 { | ||||
|                 "LastName": "Doe" , | ||||
|                 "FirstName": "John", | ||||
|                 "Email": "John.Doe@example.com", | ||||
|                 "Address": { | ||||
|                   "Address": "Rue de Tournais 42", | ||||
|                   "Country": "BE"}, | ||||
|                 "BirthDate": "1941-02-22", | ||||
|                 } | ||||
|       responses: | ||||
|         '201': | ||||
|           description: User created | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|     patch: | ||||
|       summary: Change informations about yourself  | ||||
|       tags: | ||||
|         - Users | ||||
|       security: | ||||
|         - bearer: [] | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/User' | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Successfully changed.  | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|   /user/{mat}: | ||||
|     parameters: | ||||
|       - name: mat | ||||
|         in: path | ||||
| @ -51,42 +120,459 @@ paths: | ||||
|         required: true | ||||
|         schema: | ||||
|           type: integer | ||||
|  | ||||
|   /cursus/{id}: | ||||
|     get: | ||||
|       summary: Voir les informations sur un Cursus | ||||
|       summary: Get user's informations  | ||||
|       tags: | ||||
|         - Admin | ||||
|       responses: | ||||
|         '200': | ||||
|           description: User found  | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 $ref: "#/components/schemas/User" | ||||
|     patch: | ||||
|       summary: Alter user's informations  | ||||
|       tags: | ||||
|         - Admin | ||||
|       security: | ||||
|         - bearer: [] | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/User' | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Successfully changed | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|   /course: | ||||
|     post: | ||||
|       summary: Create new course  | ||||
|       tags: | ||||
|         - Courses | ||||
|         - Secretariat | ||||
|       security:  | ||||
|         - bearer: [] | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 name: | ||||
|                   type: string | ||||
|                 courses: | ||||
|                   type: array | ||||
|                   items: | ||||
|                     type: string | ||||
|       responses: | ||||
|         '201': | ||||
|           description: course created  | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|   /courses/{id}: | ||||
|     get: | ||||
|       summary: see courses informations  | ||||
|       tags: | ||||
|         - Courses | ||||
|       responses: | ||||
|         '200': | ||||
|           description: Cursus found | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 $ref: '#/components/schemas/Course' | ||||
|     parameters: | ||||
|       - name: id | ||||
|         in: path | ||||
|         required: true | ||||
|         schema: | ||||
|           type: integer | ||||
|     delete: | ||||
|       summary: delete a course  | ||||
|       tags: | ||||
|         - Courses | ||||
|         - Secretariat | ||||
|       security:  | ||||
|         - bearer: [] | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Success | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|     patch: | ||||
|       summary: Change course options  | ||||
|       tags: | ||||
|         - Secretariat | ||||
|         - Courses | ||||
|       security: | ||||
|         - bearer: [] | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 name: | ||||
|                   type: string | ||||
|                 credits: | ||||
|                   type: integer | ||||
|                 faculty: | ||||
|                   type: string | ||||
|                 teachers: | ||||
|                   type: object | ||||
|                   $ref: '#/components/schemas/User' | ||||
|                 assistants: | ||||
|                   type: array | ||||
|                   items: | ||||
|                     $ref: '#/components/schemas/User' | ||||
|               example: | ||||
|                 { | ||||
|                 "name": "Math pour l'info", | ||||
|                 "credits": 11, | ||||
|                 "faculty": "science", | ||||
|                 "Teacher": , | ||||
|                 "Assistants": [ ] | ||||
|                 } | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Course modified | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|            | ||||
|   /cursus: | ||||
|     post: | ||||
|       summary: Create a cursus | ||||
|       tags: | ||||
|         - cursus | ||||
|       security:  | ||||
|         - bearer: [] | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 name: | ||||
|                   type: string | ||||
|                 courses:  | ||||
|                   type: array  | ||||
|                   items: | ||||
|                     type: integer | ||||
|                     description: id of courses | ||||
|               example: | ||||
|                 { | ||||
|                 "name": "Bac1", | ||||
|                 [] | ||||
|                 } | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Cursus created  | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|   /cursus/{id}: | ||||
|     get: | ||||
|       summary: See Cursus's informations  | ||||
|       tags: | ||||
|         - cursus | ||||
|       responses: | ||||
|         '200': | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 $ref: '#/components/schemas/Cursus' | ||||
|   /courses/{id}: | ||||
|     get: | ||||
|       summary: Voir les informations sur un cours* | ||||
|       tags: | ||||
|         - Courses | ||||
|       responses: | ||||
|      | ||||
|     put: | ||||
|       summary: Créer un nouveau cours | ||||
|       tags: | ||||
|         - Courses | ||||
|       security:  | ||||
|         - bearer: [] | ||||
|       responses: | ||||
|  | ||||
|     parameters: | ||||
|       - name: id | ||||
|         in: path | ||||
|         required: true | ||||
|         schema: | ||||
|           type: integer | ||||
|     delete: | ||||
|       summary: Suprimer un cours | ||||
|       summary: Delete cursus | ||||
|       tags: | ||||
|         - Courses | ||||
|         - cursus | ||||
|       security:  | ||||
|         - bearer: [] | ||||
|       responses: | ||||
|  | ||||
|         '201': | ||||
|           description: Success | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|     patch: | ||||
|       summary: Modify cursus  | ||||
|       tags: | ||||
|         - cursus | ||||
|       security: | ||||
|         - bearer: [] | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 name: | ||||
|                   type: string | ||||
|                 credits: | ||||
|                   type: integer | ||||
|                 faculty: | ||||
|                   type: string | ||||
|                 teachers: | ||||
|                   type: object | ||||
|                   $ref: '#/components/schemas/User' | ||||
|                 assistants: | ||||
|                   type: array | ||||
|                   items: | ||||
|                     $ref: '#/components/schemas/User' | ||||
|               example: | ||||
|                 { | ||||
|                 "name": "Math pour l'info", | ||||
|                 "credits": 11, | ||||
|                 "faculty": "science", | ||||
|                 "Teacher": , | ||||
|                 "Assistants": [ ] | ||||
|                 } | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Cursus modified  | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|            | ||||
|   /lesson: | ||||
|     post: | ||||
|       summary: Create a new lesson | ||||
|       tags: | ||||
|         - Secretariat | ||||
|         - lesson | ||||
|       security:  | ||||
|         - bearer: [] | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 date: | ||||
|                   type: string | ||||
|                   description: Follow the iso 8601 ("YYYY-MM-DD") | ||||
|                 IDcourse: | ||||
|                   type: integer | ||||
|                 duration: | ||||
|                   type: number | ||||
|                 classroom: | ||||
|                   type: string | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Lesson created  | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|   /lesson/{id}: | ||||
|     parameters: | ||||
|       - name: id | ||||
|         in: path | ||||
|         required: true | ||||
|         schema: | ||||
|           type: integer | ||||
|     get: | ||||
|       summary : See lesson's informations | ||||
|       tags: | ||||
|         - Users | ||||
|         - lesson | ||||
|       responses: | ||||
|         '200': | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 $ref: '#/components/schemas/Lesson' | ||||
|     patch: | ||||
|       summary : Modify Lesson | ||||
|       tags: | ||||
|         - Secretariat | ||||
|         - lesson | ||||
|       security: | ||||
|         - bearer: [] | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|              schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 date: | ||||
|                   type: string | ||||
|                   description: Follow the iso 8601 ("YYYY-MM-DD") | ||||
|                 IDcourse: | ||||
|                   type: integer | ||||
|                 duration: | ||||
|                   type: number | ||||
|                 classroom: | ||||
|                   type: string | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Lesson modified | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|            | ||||
|     delete: | ||||
|       summary: Delete lesson | ||||
|       tags: | ||||
|         - lesson | ||||
|         - Secretariat | ||||
|       security:  | ||||
|         - bearer: [] | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Success | ||||
|         '401': | ||||
|           $ref: '#/components/responses/UnauthorizedError' | ||||
|   /request: | ||||
|     post: | ||||
|       summary: Create a new request | ||||
|       tags: | ||||
|         - Teacher | ||||
|         - request | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 id: | ||||
|                   type: integer | ||||
|                 requestType: | ||||
|                   type: string | ||||
|                 lessonId: | ||||
|                   type: integer | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Request created  | ||||
|   /request/{id}: | ||||
|     parameters: | ||||
|       - name: id | ||||
|         in: path | ||||
|         required: true | ||||
|         schema: | ||||
|           type: integer | ||||
|     get: | ||||
|       summary : See request information | ||||
|       tags: | ||||
|         - Teacher | ||||
|         - Secretariat | ||||
|         - request | ||||
|       responses: | ||||
|         '200': | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 $ref: '#/components/schemas/Request' | ||||
|     patch: | ||||
|       summary : Modify request | ||||
|       tags: | ||||
|         - Teacher | ||||
|         - request | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|              schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                 id: | ||||
|                   type: integer | ||||
|                 requestType: | ||||
|                   type: string | ||||
|                 lessonId: | ||||
|                   type: integer | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Request modified | ||||
|     delete: | ||||
|       summary: Delete request | ||||
|       tags: | ||||
|         - Teacher | ||||
|         - Secretariat | ||||
|         - request | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Success | ||||
|    | ||||
|   /display: | ||||
|     post: | ||||
|         summary: Create a new display | ||||
|         tags: | ||||
|           - display | ||||
|         requestBody: | ||||
|           required: true | ||||
|           content: | ||||
|             application/x-www-form-urlencoded: | ||||
|               schema: | ||||
|                 type: object | ||||
|                 properties: | ||||
|                   id: | ||||
|                    type: integer | ||||
|                   time: | ||||
|                     type: string | ||||
|                   display: | ||||
|                     type: string | ||||
|                   userId: | ||||
|                     type: integer | ||||
|         responses: | ||||
|           '201': | ||||
|             description: display created  | ||||
|            | ||||
|   /display/{id}: | ||||
|     parameters: | ||||
|         - name: id | ||||
|           in: path | ||||
|           required: true | ||||
|           schema: | ||||
|             type: integer | ||||
|     get: | ||||
|       summary : See display information | ||||
|       tags: | ||||
|         - Users | ||||
|         - display | ||||
|       responses: | ||||
|         '200': | ||||
|           description: OK | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 $ref: '#/components/schemas/Display' | ||||
|     patch: | ||||
|       summary : Modify display | ||||
|       tags: | ||||
|         - Users | ||||
|         - display | ||||
|       requestBody: | ||||
|         required: true | ||||
|         content: | ||||
|           application/x-www-form-urlencoded: | ||||
|              schema: | ||||
|               type: object | ||||
|               properties: | ||||
|                   id: | ||||
|                    type: integer | ||||
|                   time: | ||||
|                     type: string | ||||
|                   display: | ||||
|                     type: string | ||||
|                   userId: | ||||
|                     type: integer | ||||
|       responses: | ||||
|         '201': | ||||
|           description: Display modified | ||||
|      | ||||
| components: | ||||
|   securitySchemes: | ||||
| @ -97,54 +583,82 @@ components: | ||||
|     User: | ||||
|       type: object  | ||||
|       properties: | ||||
|         RegNo: | ||||
|         regNo: | ||||
|           type: integer | ||||
|         Photo: | ||||
|         photo: | ||||
|           type: object | ||||
|         LastName:  | ||||
|         lastName:  | ||||
|           type: string | ||||
|         FirstName: | ||||
|         firstName: | ||||
|           type: string | ||||
|         Email: | ||||
|         email: | ||||
|           type: string | ||||
|         Address: | ||||
|         address: | ||||
|           $ref: "#/components/schemas/Address" | ||||
|         BirthDate: | ||||
|         birthDate: | ||||
|           type: string | ||||
|           description: Follow the iso 8601 ("YYYY-MM-DD") | ||||
|         StaffMember: | ||||
|           type: boolean | ||||
|       example: | ||||
|         { | ||||
|         "RegNo": 42, | ||||
|         "LastName": "Doe" , | ||||
|         "FirstName": "John", | ||||
|         "Email": "John.Doe@example.com", | ||||
|         "Address": { | ||||
|           "Address": "Rue de Tounais 42", | ||||
|           "Country": "BE"}, | ||||
|         "BirthDate": "1941-02-22", | ||||
|         "StaffMember": true | ||||
|         "regNo": 42, | ||||
|         "lastName": "Doe" , | ||||
|         "firstName": "John", | ||||
|         "email": "John.Doe@example.com", | ||||
|         "address": { | ||||
|           "address": "Rue de Tounais 42", | ||||
|           "country": "BE"}, | ||||
|         "birthDate": "1941-02-22", | ||||
|         "staffMember": true, | ||||
|         } | ||||
|     Address: | ||||
|       type: object | ||||
|       properties: | ||||
|         Address: | ||||
|         address: | ||||
|           type: string | ||||
|         Country: | ||||
|         country: | ||||
|           type: string | ||||
|           description: Follow the ISO-3166-1 alpha-2 standard. | ||||
|       example: | ||||
|         { | ||||
|           "Address": "Rue de Tounais 42", | ||||
|           "Country": "BE" | ||||
|           "address": "Rue de Tounais 42", | ||||
|           "country": "BE" | ||||
|         } | ||||
|     Course: | ||||
|       type: object | ||||
|       properties: | ||||
|         id: | ||||
|           type: integer | ||||
|         name: | ||||
|           type: string | ||||
|         credits: | ||||
|           type: integer | ||||
|         faculty: | ||||
|           type: string | ||||
|         teachers: | ||||
|           type: integer  | ||||
|           description: user's id  | ||||
|         assistants: | ||||
|           type: array | ||||
|           items: | ||||
|             type: integer | ||||
|             description: user's id | ||||
|       example: | ||||
|         { | ||||
|         "id": 42, | ||||
|         "name": "Math pour l'info", | ||||
|         "credits": 11, | ||||
|         "faculty": "science", | ||||
|         "Teacher": 42, | ||||
|         "Assistants": [ ] | ||||
|         } | ||||
|     Cursus: | ||||
|       type: object | ||||
|       properties: | ||||
|         Id: | ||||
|         id: | ||||
|           type: integer | ||||
|         Courses: | ||||
|         name: | ||||
|           type: string | ||||
|         courses: | ||||
|           type: array | ||||
|           items: | ||||
|             type: string | ||||
| @ -153,6 +667,63 @@ components: | ||||
|         "id": 42, | ||||
|         "courses": ['Math', 'Info'] | ||||
|         } | ||||
|     Lesson : | ||||
|       type: object | ||||
|       properties: | ||||
|         id: | ||||
|           type: integer | ||||
|         date: | ||||
|           type: string | ||||
|           description: Follow the iso 8601 ("YYYY-MM-DD") | ||||
|         duration: | ||||
|           type: number | ||||
|           description: duration of a course in hours | ||||
|         classroom: | ||||
|           type: string | ||||
|         course: | ||||
|           $ref: "#/components/schemas/Course" | ||||
|       example: | ||||
|         { | ||||
|           "id": 12, | ||||
|           "date": "2023-12-01", | ||||
|           "duration": 1.5, | ||||
|           "classroom": "AMPHI01", | ||||
|           "course": } | ||||
|     Request: | ||||
|       type: object | ||||
|       properties: | ||||
|         id: | ||||
|           type: integer | ||||
|         requestType: | ||||
|           type: string | ||||
|         lessonId: | ||||
|           type: integer | ||||
|       example: | ||||
|         { | ||||
|           "id": 12, | ||||
|           "requestType": "delete", | ||||
|           "lessonId": 72 | ||||
|         } | ||||
|     Display: | ||||
|       type: object | ||||
|       properties: | ||||
|         id: | ||||
|           type: integer | ||||
|         time: | ||||
|           type: string | ||||
|           description: Define the period displayed on the schedule (week,month,quadrimester..) | ||||
|         display: | ||||
|           type: string | ||||
|         userId: | ||||
|           type: integer | ||||
|           description: Id of the user who owns this display | ||||
|       example: | ||||
|         { | ||||
|           "id": 12, | ||||
|           "time": "month", | ||||
|           "display": "grid", | ||||
|           "UserId": 12 | ||||
|         } | ||||
|   responses: | ||||
|     UnauthorizedError: | ||||
|       description: Access token is missing or invalid | ||||
|       description: Unauthorized access or missing bearer  | ||||
		Reference in New Issue
	
	Block a user