2023-12-04 19:58:00 +01:00
|
|
|
openapi: 3.0.0
|
|
|
|
info:
|
|
|
|
title: ClydeAPI
|
|
|
|
description: Clyde's api
|
|
|
|
version: 0.0.1
|
|
|
|
|
|
|
|
servers:
|
|
|
|
- url: https://clyde.herisson.ovh/api
|
|
|
|
description: default api point for clyde's service
|
|
|
|
|
|
|
|
paths:
|
|
|
|
/ping:
|
|
|
|
get:
|
|
|
|
summary: Test if the api is up.
|
|
|
|
responses:
|
|
|
|
default:
|
|
|
|
description: Standard response to ping
|
|
|
|
content:
|
|
|
|
text/plain:
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
example: pong
|
2023-12-05 20:47:12 +01:00
|
|
|
/requests:
|
|
|
|
post:
|
|
|
|
summary: Faire une demande
|
2023-12-04 19:58:00 +01:00
|
|
|
tags:
|
2023-12-05 20:47:12 +01:00
|
|
|
- Student
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: Demande envoyée
|
|
|
|
/users:
|
|
|
|
get:
|
|
|
|
summary: Listere les utilisateurs
|
|
|
|
tags:
|
|
|
|
- SI
|
2023-12-04 19:58:00 +01:00
|
|
|
security:
|
|
|
|
- bearer: []
|
2023-12-05 20:47:12 +01:00
|
|
|
responses:
|
|
|
|
default:
|
|
|
|
description: Success
|
|
|
|
|
|
|
|
/user: # registration
|
|
|
|
post:
|
|
|
|
summary: Créer un utilisateur
|
|
|
|
tags:
|
|
|
|
- users
|
2023-12-04 19:58:00 +01:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: User created
|
|
|
|
'401':
|
|
|
|
$ref: '#/components/responses/UnauthorizedError'
|
2023-12-05 20:47:12 +01:00
|
|
|
patch:
|
|
|
|
summary: modifier ses informations
|
|
|
|
tags:
|
|
|
|
- users
|
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: Informaitions modifiées
|
|
|
|
'401':
|
|
|
|
$ref: '#/components/responses/UnauthorizedError'
|
2023-12-04 19:58:00 +01:00
|
|
|
/user/{mat}:
|
|
|
|
get:
|
|
|
|
summary: get user's info
|
|
|
|
tags:
|
2023-12-05 20:47:12 +01:00
|
|
|
- Admin
|
2023-12-04 19:58:00 +01:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: User found
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/User"
|
|
|
|
parameters:
|
|
|
|
- name: mat
|
|
|
|
in: path
|
|
|
|
description: Matricule of the user (unique id)
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
2023-12-05 20:47:12 +01:00
|
|
|
patch:
|
|
|
|
summary: modifier les informations d'un utilisateur
|
|
|
|
tags:
|
|
|
|
- Admin
|
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: Informaitions modifiées
|
|
|
|
'401':
|
|
|
|
$ref: '#/components/responses/UnauthorizedError'
|
2023-12-04 19:58:00 +01:00
|
|
|
|
2023-12-05 20:47:12 +01:00
|
|
|
/users/requests:
|
2023-12-04 19:58:00 +01:00
|
|
|
get:
|
2023-12-05 20:47:12 +01:00
|
|
|
summary: Lister les requetes d'utilisateurs
|
|
|
|
security:
|
|
|
|
- bearer: []
|
2023-12-04 19:58:00 +01:00
|
|
|
tags:
|
2023-12-05 20:47:12 +01:00
|
|
|
- Secretaria
|
|
|
|
- SI
|
2023-12-04 19:58:00 +01:00
|
|
|
responses:
|
|
|
|
'200':
|
2023-12-05 20:47:12 +01:00
|
|
|
description: Liste les requètes
|
|
|
|
|
|
|
|
|
|
|
|
/user/{mat}/validate/{id}:
|
|
|
|
patch:
|
|
|
|
summary: Valider un utilisateur
|
|
|
|
tags:
|
|
|
|
- Secretaria
|
|
|
|
- SI
|
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
parameters:
|
|
|
|
- name: mat
|
|
|
|
in: path
|
|
|
|
description: matricule de l'utilisateur
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: id
|
|
|
|
in: path
|
|
|
|
description: Identifiant de la demande
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: answer
|
|
|
|
in: header
|
|
|
|
description: valide l'utilisateur ou non
|
|
|
|
schema:
|
|
|
|
type: boolean
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: Informaitions modifiées
|
|
|
|
'401':
|
|
|
|
$ref: '#/components/responses/UnauthorizedError'
|
|
|
|
|
2023-12-04 19:58:00 +01:00
|
|
|
/courses/{id}:
|
|
|
|
get:
|
|
|
|
summary: Voir les informations sur un cours*
|
|
|
|
tags:
|
|
|
|
- Courses
|
|
|
|
responses:
|
2023-12-05 20:47:12 +01:00
|
|
|
'202':
|
|
|
|
description: success
|
|
|
|
parameters:
|
|
|
|
- name: id
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
delete:
|
|
|
|
summary: Suprimer un cours
|
|
|
|
tags:
|
|
|
|
- Courses
|
|
|
|
- Secretaria
|
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
responses:
|
|
|
|
'202':
|
|
|
|
description: success
|
|
|
|
patch:
|
|
|
|
summary: Changer les options du cours
|
2023-12-04 19:58:00 +01:00
|
|
|
tags:
|
2023-12-05 20:47:12 +01:00
|
|
|
- Secretaria
|
2023-12-04 19:58:00 +01:00
|
|
|
- Courses
|
2023-12-05 20:47:12 +01:00
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
parameters:
|
|
|
|
- name: professeur
|
|
|
|
in: header
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'202':
|
|
|
|
description: Bien ouej
|
|
|
|
|
|
|
|
/cursus:
|
|
|
|
post:
|
|
|
|
summary: Créer un nouveau cours
|
|
|
|
tags:
|
|
|
|
- cursus
|
2023-12-04 19:58:00 +01:00
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
responses:
|
2023-12-05 20:47:12 +01:00
|
|
|
'202':
|
|
|
|
description: success
|
2023-12-04 19:58:00 +01:00
|
|
|
|
2023-12-05 20:47:12 +01:00
|
|
|
|
|
|
|
/cursus/{id}:
|
|
|
|
get:
|
|
|
|
summary: Voir les informations sur un cursus
|
|
|
|
tags:
|
|
|
|
- cursus
|
|
|
|
responses:
|
|
|
|
'202':
|
|
|
|
description: success
|
|
|
|
parameters:
|
|
|
|
- name: id
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
2023-12-04 19:58:00 +01:00
|
|
|
delete:
|
2023-12-05 20:47:12 +01:00
|
|
|
summary: Suprimer un cursus
|
|
|
|
tags:
|
|
|
|
- cursus
|
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
responses:
|
|
|
|
'202':
|
|
|
|
description: success
|
|
|
|
patch:
|
|
|
|
summary: Changer les options du cursus
|
|
|
|
tags:
|
|
|
|
- cursus
|
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
responses:
|
|
|
|
'202':
|
|
|
|
description: Bien ouej
|
|
|
|
|
|
|
|
/courses:
|
|
|
|
post:
|
|
|
|
summary: Créer un nouveau cours
|
2023-12-04 19:58:00 +01:00
|
|
|
tags:
|
|
|
|
- Courses
|
2023-12-05 20:47:12 +01:00
|
|
|
- Secretaria
|
2023-12-04 19:58:00 +01:00
|
|
|
security:
|
|
|
|
- bearer: []
|
|
|
|
responses:
|
2023-12-05 20:47:12 +01:00
|
|
|
'202':
|
|
|
|
description: success
|
2023-12-04 19:58:00 +01:00
|
|
|
|
|
|
|
|
|
|
|
components:
|
|
|
|
securitySchemes:
|
|
|
|
bearer:
|
|
|
|
type: http
|
|
|
|
scheme: bearer
|
|
|
|
schemas:
|
|
|
|
User:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
RegNo:
|
|
|
|
type: integer
|
|
|
|
Photo:
|
|
|
|
type: object
|
|
|
|
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")
|
|
|
|
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",
|
2023-12-05 20:47:12 +01:00
|
|
|
"StaffMember": true,
|
2023-12-04 19:58:00 +01:00
|
|
|
}
|
|
|
|
Address:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
Address:
|
|
|
|
type: string
|
|
|
|
Country:
|
|
|
|
type: string
|
|
|
|
description: Follow the ISO-3166-1 alpha-2 standard.
|
|
|
|
example:
|
|
|
|
{
|
|
|
|
"Address": "Rue de Tounais 42",
|
|
|
|
"Country": "BE"
|
|
|
|
}
|
|
|
|
Cursus:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
Id:
|
|
|
|
type: integer
|
|
|
|
Courses:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
{
|
|
|
|
"id": 42,
|
|
|
|
"courses": ['Math', 'Info']
|
|
|
|
}
|
|
|
|
responses:
|
|
|
|
UnauthorizedError:
|
2023-12-05 20:47:12 +01:00
|
|
|
description: Access token is missing or invalid
|