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 /requests: post: summary: Faire une demande tags: - Student responses: '201': description: Demande envoyée /users: get: summary: Listere les utilisateurs tags: - SI security: - bearer: [] responses: default: description: Success /user: # registration post: summary: Créer un utilisateur tags: - users responses: '200': description: User created '401': $ref: '#/components/responses/UnauthorizedError' patch: summary: modifier ses informations tags: - users security: - bearer: [] responses: '200': description: Informaitions modifiées '401': $ref: '#/components/responses/UnauthorizedError' /user/{mat}: get: summary: get user's info tags: - Admin 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 patch: summary: modifier les informations d'un utilisateur tags: - Admin security: - bearer: [] responses: '200': description: Informaitions modifiées '401': $ref: '#/components/responses/UnauthorizedError' /users/requests: get: summary: Lister les requetes d'utilisateurs security: - bearer: [] tags: - Secretaria - SI responses: '200': 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' /courses/{id}: get: summary: Voir les informations sur un cours* tags: - Courses responses: '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 tags: - Secretaria - Courses 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 security: - bearer: [] responses: '202': description: success /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 delete: 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 tags: - Courses - Secretaria security: - bearer: [] responses: '202': description: success 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", "StaffMember": true, } 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: description: Access token is missing or invalid