diff --git a/Documents/proto/general/openapi.yaml b/Documents/proto/general/openapi.yaml index 7081464..4b8df80 100644 --- a/Documents/proto/general/openapi.yaml +++ b/Documents/proto/general/openapi.yaml @@ -57,7 +57,7 @@ paths: - Users security: - bearer: [] - responses: + responses: '200': description: Ok content: @@ -190,6 +190,12 @@ paths: '401': $ref: '#/components/responses/UnauthorizedError' /courses/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: integer get: summary: see courses informations tags: @@ -202,12 +208,7 @@ paths: application/json: schema: $ref: '#/components/schemas/Course' - parameters: - - name: id - in: path - required: true - schema: - type: integer + delete: summary: delete a course tags: @@ -267,7 +268,7 @@ paths: summary: Create a cursus tags: - General - - cursus + - Cursus security: - bearer: [] requestBody: @@ -299,7 +300,7 @@ paths: summary: See Cursus's informations tags: - General - - cursus + - Cursus responses: '200': description: OK @@ -317,7 +318,7 @@ paths: summary: Delete cursus tags: - General - - cursus + - Cursus security: - bearer: [] responses: @@ -329,7 +330,7 @@ paths: summary: Modify cursus tags: - General - - cursus + - Cursus security: - bearer: [] requestBody: @@ -365,14 +366,249 @@ paths: '401': $ref: '#/components/responses/UnauthorizedError' + + /lesson: + post: + summary: create a new lesson + tags: + - Secretariat + - Lesson + - Ext (Schedule) + 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") + CourseId: + 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 + - Ext (Schedule) + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Lesson' + patch: + summary : Modify Lesson + tags: + - Secretariat + - Lesson + - Ext (Schedule) + 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 + - Ext (Schedule) + security: + - bearer: [] + responses: + '201': + description: Success + '401': + $ref: '#/components/responses/UnauthorizedError' + /scheduleRequest: + post: + summary: Create a new request + tags: + - Teacher + - ScheduleRequest + - Ext (Schedule) + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + requestType: + type: string + lessonId: + type: integer + newDate: + type: string + description: Follow the iso 8601 ("YYYY-MM-DD") + newClassroom: + type: string + newCourseId: + type: integer + responses: + '201': + description: Request created + '401': + $ref: '#/components/responses/UnauthorizedError' + + /scheduleRequest/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: integer + get: + summary : See request information + tags: + - Teacher + - Secretariat + - ScheduleRequest + - Ext (Schedule) + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleRequest' + patch: + summary : Modify request + tags: + - Teacher + - ScheduleRequest + - Ext (Schedule) + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + newDate: + type: string + newClassroom: + type: string + newCourseId: + type: integer + responses: + '201': + description: Request modified + delete: + summary: Delete request + tags: + - Teacher + - Secretariat + - ScheduleRequest + - Ext (Schedule) + responses: + '201': + description: Success + + /display: + post: + summary: Create a new display + tags: + - Display + - Ext (Schedule) + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + timeMode: + type: string + displayMode: + type: string + userId: + type: integer + responses: + '201': + description: display created - - - - - -# Extension publication scientifique + /display/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: integer + get: + summary : See display information + tags: + - Users + - Display + - Ext (Schedule) + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Display' + patch: + summary : Modify display + tags: + - Users + - Display + - Ext (Schedule) + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + timeMode: + type: string + displayMode: + type: string + responses: + '201': + description: Display modified + # Extension publication scientifique /article: post: @@ -421,7 +657,6 @@ paths: "views": 420, "authors" : [] } - /article/{id}: parameters: - name: id @@ -445,7 +680,7 @@ paths: $ref: '#/components/schemas/Article' '401': $ref: '#/components/responses/UnauthorizedError' - + patch: summary: modify an article tags: @@ -634,7 +869,6 @@ components: "id": 42, "courses": ['Math', 'Info'] } - Article: type: object properties: @@ -695,11 +929,82 @@ components: "title": "graph's second theorem study", "author" : "john doe" } - - + 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 + courseId: + type: integer + example: + { + "id": 12, + "date": "2023-12-01", + "duration": 1.5, + "classroom": "AMPHI01", + "courseId": 12 + } + ScheduleRequest: + type: object + properties: + id: + type: integer + requestType: + type: string + lessonId: + type: integer + teacherId: + type: integer + newDate: + type: string + description: Follow the iso 8601 ("YYYY-MM-DD") + newClassroom: + type: string + newCourseId: + type: integer + example: + { + "id": 12, + "requestType": "moveLesson", + "lessonId": 52, + "teacherId": 12, + "newDate": "2023-12-20", + "newClassroom":, + "newCourseId":, + } + + Display: + type: object + properties: + id: + type: integer + timeMode: + type: string + description: Define the period displayed on the schedule (week,month,quadrimester..) + displayMode: + type: string + userId: + type: integer + description: Id of the user who owns this display + example: + { + "id": 12, + "timeMode": "month", + "displayMode": "grid", + "UserId": 12 + } responses: UnauthorizedError: description: Unauthorized access or missing bearer +