GestionHoraire #6
@ -241,7 +241,6 @@ paths:
|
||||
faculty:
|
||||
type: string
|
||||
teachers:
|
||||
type: object
|
||||
$ref: '#/components/schemas/User'
|
||||
assistants:
|
||||
type: array
|
||||
@ -345,7 +344,6 @@ paths:
|
||||
faculty:
|
||||
type: string
|
||||
teachers:
|
||||
type: object
|
||||
$ref: '#/components/schemas/User'
|
||||
assistants:
|
||||
type: array
|
||||
@ -365,6 +363,247 @@ 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
|
||||
Wal marked this conversation as resolved
|
||||
properties:
|
||||
date:
|
||||
type: string
|
||||
description: Follow the iso 8601 ("YYYY-MM-DD")
|
||||
CourseId:
|
||||
type: integer
|
||||
duration:
|
||||
type: number
|
||||
classroom:
|
||||
type: string
|
||||
responses:
|
||||
'201':
|
||||
tonitch marked this conversation as resolved
Maxime
commented
Tu ne précises pas qui donne le cours, jsp si c'est un problème mais du coup il y a plusieurs personnes qui peuvent le donner comme prof référant ou assistant. Tu ne précises pas qui donne le cours, jsp si c'est un problème mais du coup il y a plusieurs personnes qui peuvent le donner comme prof référant ou assistant.
tonitch
commented
Vu qu'il stock IDcourse (que j'aurais personellement nommé CourseID) l'enseignant est sensé être dedans non ? Vu qu'il stock IDcourse (que j'aurais personellement nommé CourseID) l'enseignant est sensé être dedans non ?
Maxime
commented
alors oui le courseId donne accès à un array de profs mais du coup on sait pas spécifier lequel donne le cours dans son implémentation alors oui le courseId donne accès à un array de profs mais du coup on sait pas spécifier lequel donne le cours dans son implémentation
Wal
commented
Jcomptais mettre les teachers quand cetait theorique et examen et les assistants quand c'est tp mais apres jpeux spécifier meme si sur l'hyperplannng et tout il y a la liste des profs qui peuvent donner cours Jcomptais mettre les teachers quand cetait theorique et examen et les assistants quand c'est tp mais apres jpeux spécifier meme si sur l'hyperplannng et tout il y a la liste des profs qui peuvent donner cours
|
||||
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:
|
||||
Wal marked this conversation as resolved
Maxime
commented
Du coup, est-ce qu'il y aurrait pas moyen qu'un professeur demande de mettre à l'horaire que finalement ça sera son assistant qui donnera le cours ? (c'est des détails en vrai mais autant y réfléchir un peu) Du coup, est-ce qu'il y aurrait pas moyen qu'un professeur demande de mettre à l'horaire que finalement ça sera son assistant qui donnera le cours ? (c'est des détails en vrai mais autant y réfléchir un peu)
Wal
commented
Imo ca devient trop spécifique et les assistants peuvent donner que les tps selon moi et au pire le prof peut demander. et ca peux meme aller dans la gestion de cours qui est pas mon dos comme cest une autre extension perso Imo ca devient trop spécifique et les assistants peuvent donner que les tps selon moi et au pire le prof peut demander. et ca peux meme aller dans la gestion de cours qui est pas mon dos comme cest une autre extension perso
|
||||
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:
|
||||
Wal marked this conversation as resolved
tonitch
commented
faut juste voir avec @LeoMoulin que ces endpoints ne soient pas en conflits ? faut juste voir avec @LeoMoulin que ces endpoints ne soient pas en conflits ?
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
requestType:
|
||||
Wal marked this conversation as resolved
Maxime
commented
tu as laissé request ici peut-être le changer en ScheduleRequest ? tu as laissé request ici peut-être le changer en ScheduleRequest ?
|
||||
type: string
|
||||
lessonId:
|
||||
type: integer
|
||||
newDate:
|
||||
type: string
|
||||
description: Follow the iso 8601 ("YYYY-MM-DD")
|
||||
newClassroom:
|
||||
Wal marked this conversation as resolved
Outdated
Maxime
commented
ici tu as oublié de changer, c'est encore l'ancienne version où le prof n'as pas le choix de quand son cours est déplacé ni où. ici tu as oublié de changer, c'est encore l'ancienne version où le prof n'as pas le choix de quand son cours est déplacé ni où.
|
||||
type: string
|
||||
newCourseId:
|
||||
type: integer
|
||||
responses:
|
||||
'201':
|
||||
description: Request created
|
||||
'401':
|
||||
$ref: '#/components/responses/UnauthorizedError'
|
||||
|
||||
/scheduleRequest/{id}:
|
||||
Wal marked this conversation as resolved
Outdated
tonitch
commented
quand il y a un 'security' tag c'est toujours bien d'envisager l'erreur de permission:
quand il y a un 'security' tag c'est toujours bien d'envisager l'erreur de permission:
```yaml
'401':
$ref: '#/components/responses/UnauthorizedError'
```
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
get:
|
||||
summary : See request information
|
||||
tags:
|
||||
- Teacher
|
||||
- Secretariat
|
||||
- ScheduleRequest
|
||||
- Ext (Schedule)
|
||||
Wal marked this conversation as resolved
Outdated
Maxime
commented
de nouveau request -> ScheduleRequest ? de nouveau request -> ScheduleRequest ?
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ScheduleRequest'
|
||||
patch:
|
||||
summary : Modify request
|
||||
tags:
|
||||
- Teacher
|
||||
- ScheduleRequest
|
||||
- Ext (Schedule)
|
||||
Wal marked this conversation as resolved
Outdated
Maxime
commented
de nouveau request -> ScheduleRequest ?
de nouveau request -> ScheduleRequest ?
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
newDate:
|
||||
type: string
|
||||
Wal marked this conversation as resolved
tonitch
commented
Je ne pense pas que tu puisse changer l'id d'un request. Je ne pense pas que tu puisse changer l'id d'un request.
|
||||
newClassroom:
|
||||
type: string
|
||||
Wal marked this conversation as resolved
Outdated
Maxime
commented
ici aussi oubli de dernière version ici aussi oubli de dernière version
|
||||
newCourseId:
|
||||
type: integer
|
||||
responses:
|
||||
'201':
|
||||
description: Request modified
|
||||
delete:
|
||||
summary: Delete request
|
||||
tags:
|
||||
- Teacher
|
||||
- Secretariat
|
||||
- ScheduleRequest
|
||||
- Ext (Schedule)
|
||||
Wal marked this conversation as resolved
Outdated
Maxime
commented
de nouveau request -> ScheduleRequest ?
de nouveau request -> ScheduleRequest ?
tonitch
commented
j'ai jamais vu un aussi gros copier-collé que depuis math podcast j'ai jamais vu un aussi gros copier-collé que depuis math podcast
|
||||
responses:
|
||||
'201':
|
||||
description: Success
|
||||
|
||||
/display:
|
||||
post:
|
||||
summary: Create a new display
|
||||
tags:
|
||||
Wal marked this conversation as resolved
tonitch
commented
summary permet une courte description. il y'a également le tag Dans ce cas ci ça pourrais peut être être utile ? display peut être ambigu ? summary permet une courte description. il y'a également le tag `description` qui peut être pratique pour une plus grande description.
Dans ce cas ci ça pourrais peut être être utile ? display peut être ambigu ?
|
||||
- Display
|
||||
- Ext (Schedule)
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
timeMode:
|
||||
type: string
|
||||
Wal marked this conversation as resolved
tonitch
commented
l'id ne pourrais pas l'id ne pourrais pas
|
||||
displayMode:
|
||||
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
|
||||
- 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
|
||||
Wal marked this conversation as resolved
tonitch
commented
l'id ne pourrais pas être changé ici non plus. l'id ne pourrais pas être changé ici non plus.
|
||||
responses:
|
||||
'201':
|
||||
description: Display modified
|
||||
|
||||
components:
|
||||
securitySchemes:
|
||||
@ -459,6 +698,78 @@ components:
|
||||
"id": 42,
|
||||
"courses": ['Math', 'Info']
|
||||
}
|
||||
Lesson :
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
date:
|
||||
type: string
|
||||
description: Follow the iso 8601 ("YYYY-MM-DD")
|
||||
Wal marked this conversation as resolved
tonitch
commented
C'est sympa de faire des schema pour avoir une bonne description mais il ne sont jamais utilisé. pour les utiliser tu peux faire par example pour utiliser Lesson tu peux faire C'est sympa de faire des schema pour avoir une bonne description mais il ne sont jamais utilisé. pour les utiliser tu peux faire
`$ref: <path/to/source>`
par example pour utiliser Lesson tu peux faire `$ref: '#/components/schemas/Lesson` qui va être remplacé par tout ce qui est dans ce tag ci!
|
||||
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
|
||||
|
Pour l'instant pour que ça fasse plus bô j'ai mis tout les tags en commençant avec une majuscule. c'est mineur mais ça serait cool ^^