Début de mise à jour doc API

This commit is contained in:
Emmanuel Viennet 2022-07-16 22:48:40 +03:00
parent 6a07f6e5af
commit f611923686

View File

@ -232,7 +232,7 @@ par le serveur ScoDoc.
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `dept` * **Paramètres:** `dept`
* **Routes:** `/departement/<string:dept>/formsemestres_ids` * **Routes:** `/departement/<string:dept>/formsemestres_ids`
* **Exemple d'utilisation:** `/api/departements/MMI/formsemestres_ids` * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_ids`
* **Résultat:** Liste des id des formsemestres d'un département donné. * **Résultat:** Liste des id des formsemestres d'un département donné.
* **Exemple de résultat:** * **Exemple de résultat:**
```[ 28, 99, 3 ]``` ```[ 28, 99, 3 ]```
@ -241,7 +241,7 @@ par le serveur ScoDoc.
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `dept` * **Paramètres:** `dept`
* **Routes:** `/departement/<string:dept>/formsemestres_courants` * **Routes:** `/departement/<string:dept>/formsemestres_courants`
* **Exemple d'utilisation:** `/api/departements/MMI/formsemestres_courants` * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_courants`
* **Résultat:** Liste des formsemestres en cours d'un département donné. * **Résultat:** Liste des formsemestres en cours d'un département donné.
* **Exemple de résultat:** * **Exemple de résultat:**
``` ```
@ -316,7 +316,7 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
* **`etudiant`** * **`etudiant`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `etudid`, `nip`, `ine` * **Paramètres:** `etudid`, `nip`, `ine`
* **Routes:** `/etudiant/etudid/<int:etudid>` ou `/etudiant/nip/<int:nip>` ou `/etudiant/ine/<int:ine>` * **Routes:** `/etudiant/etudid/<int:etudid>` ou `/etudiant/nip/<string:nip>` ou `/etudiant/ine/<string:ine>`
* **Exemple d'utilisation:** `/api/etudiant/nip/1` * **Exemple d'utilisation:** `/api/etudiant/nip/1`
* **Résultat:** Retourne les informations sur l'étudiant correspondant à * **Résultat:** Retourne les informations sur l'étudiant correspondant à
l'id passé en paramètres. l'id passé en paramètres.
@ -329,6 +329,8 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
"code_ine": "1", "code_ine": "1",
"code_nip": "1", "code_nip": "1",
"date_naissance": "", "date_naissance": "",
"dept_id": 1,
"dept_acronym": "TAPI",
"email": "SACHA.COSTA@example.com", "email": "SACHA.COSTA@example.com",
"emailperso": "", "emailperso": "",
"etudid": 1, "etudid": 1,
@ -354,21 +356,54 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
* **`etudiants`** * **`etudiants`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `etudid`, `nip`, `ine` * **Paramètres:** `etudid`, `nip`, `ine`
* **Routes:** `/etudiants/etudid/<int:etudid>` ou `/etudiants/nip/<int:nip>` ou `/etudiants/ine/<int:ine>` * **Routes:** `/etudiants/etudid/<int:etudid>` ou `/etudiants/nip/<string:nip>` ou `/etudiants/ine/<string:ine>`
* **Exemple d'utilisation:** `/api/etudiants/nip/1` * **Exemple d'utilisation:** `/api/etudiants/nip/1`
* **Résultat:** Info sur le ou les étudiants correspondant. * **Résultat:** Info sur le ou les étudiants correspondants.
Comme `/etudiant` mais renvoie toujours une liste. Comme `/etudiant` mais renvoie toujours une liste.
Si non trouvé, liste vide, pas d'erreur. Si non trouvé, liste vide, pas d'erreur.
Dans 99% des cas, la liste contient un seul étudiant, mais si l'étudiant a Dans 99% des cas, la liste contient un seul étudiant, mais si l'étudiant a
été inscrit dans plusieurs départements, on a plusieurs objets (1 par été inscrit dans plusieurs départements, on a plusieurs objets (1 par
dept.). dept.).
* **Exemple de résultat:**
```
[
{
"civilite": "X",
"code_ine": "1",
"code_nip": "1",
"date_naissance": "",
"dept_id": 1,
"dept_acronym": "TAPI",
"email": "SACHA.COSTA@example.com",
"emailperso": "",
"etudid": 1,
"nom": "COSTA",
"prenom": "SACHA",
"nomprenom": "Sacha COSTA",
"lieu_naissance": "",
"dept_naissance": "",
"nationalite": "",
"boursier": "",
"id": 1,
"codepostaldomicile": "",
"paysdomicile": "",
"telephonemobile": "",
"typeadresse": "domicile",
"domicile": "",
"villedomicile": "",
"telephone": "",
"fax": "",
"description": ""
}
]
```
#### Cursus #### Cursus
* **`etudiant_formsemestres`** * **`etudiant_formsemestres`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `etudid`, `nip`, `ine` * **Paramètres:** `etudid`, `nip`, `ine`
* **Routes:** : `/etudiant/etudid/<int:etudid>/formsemestres` ou `/etudiant/nip/<int:nip>/formsemestres` ou `/etudiant/ine/<int:ine>/formsemestres` * **Routes:** : `/etudiant/etudid/<int:etudid>/formsemestres` ou `/etudiant/nip/<string:nip>/formsemestres` ou `/etudiant/ine/<string:ine>/formsemestres`
* **Exemple d'utilisation:** `/etudiant/ine/1/formsemestres` * **Exemple d'utilisation:** `/etudiant/ine/1/formsemestres`
* **Résultat:** Retourne la liste des semestres qu'un étudiant a suivis, triés par ordre chronologique. (json) * **Résultat:** Retourne la liste des semestres qu'un étudiant a suivis, triés par ordre chronologique. (json)
* **Exemple de résultat:** * **Exemple de résultat:**
@ -414,11 +449,15 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine` * **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine`
* **Routes:** * **Routes:**
`/etudiant/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/bulletin` `/etudiant/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/bulletin[/format][/pdf]`
ou `/etudiant/nip/<int:nip>/formsemestre/<int:formsemestre_id>/bulletin` ou `/etudiant/nip/<string:nip>/formsemestre/<int:formsemestre_id>/bulletin[/format][/pdf]`
ou `/etudiant/ine/<int:ine>/formsemestre/<int:formsemestre_id>/bulletin` ou `/etudiant/ine/<string:ine>/formsemestre/<int:formsemestre_id>/bulletin[/format][/pdf]`
On peut spécifier le format: `long`ou `short`, et indiquer si l'on veut le
bulletin PDF.
* **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin` * **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin`
* **Résultat:** Bulletin de l'étudiant dans le formsemestre. * **Résultat:** Bulletin de l'étudiant dans le formsemestre.
Deux versions disponibles `long` et `short` (par défaut `long` ajoutez `/short` pour la version plus courte).
* **Exemple de résultat:** * **Exemple de résultat:**
``` ```
{ {
@ -595,7 +634,7 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
* **`etudiant_groups`** * **`etudiant_groups`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine` * **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine`
* **Routes:** `/etudiant/etudid/<int:etudid>/semestre/<int:formsemestre_id>/groups` ou `/etudiant/nip/<int:nip>/semestre/<int:formsemestre_id>/groups` ou `/etudiant/ine/<int:ine>/semestre/<int:formsemestre_id>/groups` * **Routes:** `/etudiant/etudid/<int:etudid>/semestre/<int:formsemestre_id>/groups` ou `/etudiant/nip/<string:nip>/semestre/<int:formsemestre_id>/groups` ou `/etudiant/ine/<string:ine>/semestre/<int:formsemestre_id>/groups`
* **Exemple d'utilisation:** `/etudiant/nip/1/semestre/1/groups` * **Exemple d'utilisation:** `/etudiant/nip/1/semestre/1/groups`
* **Résultat:** Retourne la liste des groupes auxquels appartient l'étudiant dans le semestre indiqué. (json) * **Résultat:** Retourne la liste des groupes auxquels appartient l'étudiant dans le semestre indiqué. (json)
* **Exemple de résultat:** * **Exemple de résultat:**
@ -638,12 +677,12 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
* **Exemple de résultat:** `[17, 99, 32]` * **Exemple de résultat:** `[17, 99, 32]`
* **`formations_by_id`** * **`formation`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `formation_id` * **Paramètres:** `formation_id`
* **Routes:** `/formation/<int:formation_id>` * **Routes:** `/formation/<int:formation_id>`
* **Exemple d'utilisation:** `/ScoDoc/api/formation/1` * **Exemple d'utilisation:** `/ScoDoc/api/formation/1`
* **Résultat:** Retourne une formation en fonction d'un id donné * **Résultat:** Retourne la formationd'id donné
* **Exemple de résultat:** * **Exemple de résultat:**
``` ```
{ {
@ -661,7 +700,7 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
} }
``` ```
#### Export programme #### Export programme
* **`formation_export_by_formation_id`** * **`formation_export`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True) * **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True)
* **Routes:** `/formation/formation_export/<int:formation_id>` * **Routes:** `/formation/formation_export/<int:formation_id>`
@ -804,9 +843,10 @@ Les sessions de formation (qu'elles durent une année ou un mois) sont représen
], ],
"scodoc7_id": null, "scodoc7_id": null,
"semestre_id": 1, "semestre_id": 1,
"titre_court": "BUT MMI" "titre_court": "BUT MMI",
"titre_num": "Semestre test semestre 1", "titre_num": "Semestre test semestre 1",
"titre": "Semestre test", "titre": "Semestre test",
"session_id": "MMI-BUT-FI-S1-2021",
} }
``` ```
* **`formsemestre_apo`** * **`formsemestre_apo`**
@ -843,8 +883,10 @@ des informations suivantes:
#### Étudiants inscrits #### Étudiants inscrits
* **etudiants** * **etudiants**
* **Méthode:** GET * **Méthode:** GET
* **Routes:** `/formsemestre/<int:formsemestre_id>/etudiants` * **Paramètres:** `formsemestre_id`, `etat` (par défaut égal à "I" pour les étudiants inscrits)
* **Routes:** `/formsemestre/<int:formsemestre_id>/etudiants` XXX voir si
filtrage par état (dem, def, ...)
* **Résultat:** les étudiants inscrits à ce semestres XXX préciser état * **Résultat:** les étudiants inscrits à ce semestres XXX préciser état
(DEM, DEF)) (DEM, DEF))
@ -1028,6 +1070,59 @@ des informations suivantes:
} }
] ]
``` ```
* **etat_evals**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>/etat_evals`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/etat_evals`
* **Résultat:** Retourne les informations sur l'état des évaluations d'un semestre donnée
* **Exemple de résultat:**
```
{
"RT1.1": [
{
"id": 1,
"titre": "Initiation aux réseaux informatiques",
"evaluations": [
{
"id": 1,
"description": null,
"datetime_epreuve": null,
"heure_fin": "09:00:00",
"comptee": "oui",
"inscrits": 16,
"manquantes": 0,
"ABS": 0,
"ATT": 0,
"EXC": 0,
"saisie_notes": {
"datetime_debut": "2021-09-11T00:00:00+02:00",
"datetime_fin": "2022-08-25T00:00:00+02:00",
"datetime_mediane": "2022-03-19T00:00:00+01:00"
}
},
{
"id": 22,
"description": null,
"datetime_epreuve": "2021-08-11T00:00:00+02:00",
"heure_fin": "08:00:00",
"comptee": "oui",
"inscrits": 16,
"manquantes": 0,
"ABS": 0,
"ATT": 0,
"EXC": 0,
"saisie_notes": {
"datetime_debut": "2021-09-11T00:00:00+02:00",
"datetime_fin": "2022-08-25T00:00:00+02:00",
"datetime_mediane": "2022-03-19T00:00:00+01:00"
}
},
]
},
]
}
```
@ -1190,15 +1285,53 @@ d'un nombre quelconque de groupes d'étudiants.
] ]
``` ```
* **`/partitions/groups/`** * **`groups`**
* **Méthode: GET** * **Méthode: GET**
* **Paramètres:** `group_id`, `etat` * **Paramètres:** `group_id`, `etat`
* **Routes:** `/partitions/groups/<int:group_id>` ou `/partitions/groups/<int:group_id>/etat/<string:etat>` * **Routes:** `/partitions/groups/<int:group_id>` ou `/partitions/groups/<int:group_id>/etat/<string:etat>`
* **Exemple d'utilisation:** `/ScoDoc/api/partitions/groups/1` * **Exemple d'utilisation:** `/ScoDoc/api/partitions/groups/1`
* **Résultat:** XXX à préciser * **Résultat:** Retourne la liste des étudiants dans un groupe.
* **Exemple de résultat:** * **Exemple de résultat:**
``` ```
[
{
"etudid": 10,
"id": 10,
"dept_id": 1,
"nom": "BOUTET",
"prenom": "Marguerite",
"nom_usuel": "",
"civilite": "F",
"date_naissance": null,
"lieu_naissance": null,
"dept_naissance": null,
"nationalite": null,
"statut": null,
"boursier": null,
"photo_filename": null,
"code_nip": "10",
"code_ine": "10",
"scodoc7_id": null,
"email": "MARGUERITE.BOUTET@example.com",
"emailperso": null,
"domicile": null,
"codepostaldomicile": null,
"villedomicile": null,
"paysdomicile": null,
"telephone": null,
"telephonemobile": null,
"fax": null,
"typeadresse": "domicile",
"description": null,
"group_id": 1,
"etat": "I",
"civilite_str": "Mme",
"nom_disp": "BOUTET",
"nomprenom": "Mme Marguerite BOUTET",
"ne": "e",
"email_default": "MARGUERITE.BOUTET@example.com"
}
]
``` ```
@ -1243,14 +1376,14 @@ d'un nombre quelconque de groupes d'étudiants.
``` ```
* **`evaluation_notes`** * **`evaluations/notes`**
* **Méthode**: GET * **Méthode**: GET
* **Paramètres**: `evaluation_id` * **Paramètres**: `evaluation_id`
* **Routes:** `/evaluations/eval_notes/<int:evaluation_id>` * **Routes:** `/evaluations/eval_notes/<int:evaluation_id>`
* **Exemple d'utilisation:** `/ScoDoc/api/evaluations/eval_notes/1` * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/notes/1`
* **Résultat:** Retourne la liste des notes à partir de l'id d'une évaluation donnée * **Résultat:** Retourne la liste des notes d'une évaluation
* **Exemple de résultat:** * **Exemple de résultat:**
XXX à revoir (à spécifier) XXX à revoir (à spécifier/reprendre implémentation XXX was eval_notes)
### Absences ### Absences
@ -1267,25 +1400,21 @@ d'un nombre quelconque de groupes d'étudiants.
``` ```
[ [
{ {
"jour": "2022-04-15",
"matin": true, "matin": true,
"estabs": true, "estabs": true,
"estjust": true, "estjust": true,
"description": "", "description": "Retard bus",
"begin": "2022-04-15 08:00:00", "begin": "2022-04-15 08:00:00",
"end": "2022-04-15 11:59:59" "end": "2022-04-15 11:59:59"
}, },
{ {
"matin": false, ...
"estabs": true,
"estjust": false,
"description": "",
"begin": "2022-04-15 12:00:00",
"end": "2022-04-15 17:59:59"
} }
] ]
``` ```
* **`absences_just`** * **`absences/just`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `etudid` * **Paramètres:** `etudid`
* **Routes:** `/absences/etudid/<int:etudid>/just` * **Routes:** `/absences/etudid/<int:etudid>/just`
@ -1295,20 +1424,16 @@ d'un nombre quelconque de groupes d'étudiants.
``` ```
[ [
{ {
"jour": "2022-04-15",
"matin": true, "matin": true,
"estabs": true, "estabs": true,
"estjust": true, "estjust": true,
"description": "", "description": "Retard bus",
"begin": "2022-04-15 08:00:00", "begin": "2022-04-15 08:00:00",
"end": "2022-04-15 11:59:59" "end": "2022-04-15 11:59:59"
}, },
{ {
"matin": false, ...
"estabs": true,
"estjust": true,
"description": "",
"begin": "2022-04-15 12:00:00",
"end": "2022-04-15 17:59:59"
} }
] ]
``` ```
@ -1316,13 +1441,15 @@ d'un nombre quelconque de groupes d'étudiants.
* **`abs_groupe_etat`** * **`abs_groupe_etat`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `group_ids`, `date_debut`, `date_fin`, `with_boursier=True`, `format=html` * **Paramètres:** `group_ids`, `date_debut`, `date_fin`,
* **Routes:** `/absences/abs_group_etat/<int:group_id>` ou `/absences/abs_group_etat/group_id/<in:group_id>/date_debut/<date:date_debut>/date_fin/<date:date_fin>` * **Routes:** `/absences/abs_group_etat/<int:group_id>` ou `/absences/abs_group_etat/group_id/<in:group_id>/date_debut/<date:date_debut>/date_fin/<date:date_fin>`
* **Exemple d'utilisation:** `/ScoDoc/api/absences/abs_group_etat/1` * **Exemple d'utilisation:** `/ScoDoc/api/absences/abs_group_etat/1`
* **Résultat:** Liste des absences d'un ou plusieurs groupes entre deux dates. * **Résultat:** Liste des absences d'un groupe entre deux dates.
* **Exemple de résultat:** * **Exemple de résultat:**
``` ```
XXX A COMPLETER XXX A COMPLETER XXX with_boursier ??
* XXX ajouter méthode(s) de set abs
``` ```
@ -1355,11 +1482,12 @@ d'un nombre quelconque de groupes d'étudiants.
* **`liste des logos globaux`** * **`liste des logos globaux`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `format` (json, xml), json par défaut * **Paramètres:** `format` (json, xml), json par défaut
* **Route :** `/logos` * **Route :** `/ScoDoc/api/logos`
* **Exemple d'utilisation :** `/ScoDoc/api/logos?format=xml` * **Exemple d'utilisation :** `/ScoDoc/api/logos?format=xml`
* **Résultat :** Liste des logos définis pour le site scodoc. * **Résultat :** Liste des noms des logos définis pour le site scodoc.
* **Exemple de résultat:** `['header', 'footer', 'custom']` * **Exemple de résultat:** `['header', 'footer', 'custom']`
XXX vérifier si on supporte XML et pour qui ?
* **`récupération d'un logo global`** * **`récupération d'un logo global`**
* **Méthode:** GET * **Méthode:** GET
@ -1374,7 +1502,7 @@ d'un nombre quelconque de groupes d'étudiants.
* **Paramètres:** `format` (json, xml) * **Paramètres:** `format` (json, xml)
* **Route :** `/departements/<string:dept>/logos` * **Route :** `/departements/<string:dept>/logos`
* **Exemple d'utilisation :** `/ScoDoc/api/departements/MMI/logos` * **Exemple d'utilisation :** `/ScoDoc/api/departements/MMI/logos`
* **Résultat :** Liste des logos définis pour le département visé. * **Résultat :** Liste des noms des logos définis pour le département visé.
* **Exemple de résultat:** `['footer', 'signature', 'universite']` * **Exemple de résultat:** `['footer', 'signature', 'universite']`