Gestion Horaire osamerilyabcp

This commit is contained in:
Wal 2023-12-10 13:15:49 +01:00
parent 5a60d8f3db
commit b00ab09079

View File

@ -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: []
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*
parameters:
- name: id
in: path
required: true
schema:
type: integer
delete:
summary: Delete cursus
tags:
- Courses
responses:
put:
summary: Créer un nouveau cours
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: Suprimer un cours
summary: Delete lesson
tags:
- Courses
- 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