forked from ScoDoc/ScoDoc
APIDoc : génération fichier samples
This commit is contained in:
parent
b542e7dab5
commit
3b2888cd5b
@ -64,6 +64,11 @@ def assiduite(assiduite_id: int = None):
|
|||||||
"est_just": False or True,
|
"est_just": False or True,
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduite/1;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return get_model_api_object(Assiduite, assiduite_id, Identite)
|
return get_model_api_object(Assiduite, assiduite_id, Identite)
|
||||||
@ -93,6 +98,11 @@ def assiduite_justificatifs(assiduite_id: int = None, long: bool = False):
|
|||||||
...
|
...
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduite/1/justificatifs;
|
||||||
|
/assiduite/1/justificatifs/long;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return get_assiduites_justif(assiduite_id, long)
|
return get_assiduites_justif(assiduite_id, long)
|
||||||
@ -156,6 +166,13 @@ def assiduites_count(
|
|||||||
metric: la/les métriques de comptage (journee, demi, heure, compte)
|
metric: la/les métriques de comptage (journee, demi, heure, compte)
|
||||||
split: divise le comptage par état
|
split: divise le comptage par état
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduites/1/count;
|
||||||
|
/assiduites/1/count/query?etat=retard;
|
||||||
|
/assiduites/1/count/query?split;
|
||||||
|
/assiduites/1/count/query?etat=present,retard&metric=compte,heure;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération de l'étudiant
|
# Récupération de l'étudiant
|
||||||
@ -221,6 +238,7 @@ def assiduites(etudid: int = None, nip=None, ine=None, with_query: bool = False)
|
|||||||
date_fin:<string:date_fin_iso>
|
date_fin:<string:date_fin_iso>
|
||||||
etat:<array[string]:etat>
|
etat:<array[string]:etat>
|
||||||
formsemestre_id:<int:formsemestre_id>
|
formsemestre_id:<int:formsemestre_id>
|
||||||
|
with_justifs:<bool:with_justifs>
|
||||||
|
|
||||||
PARAMS
|
PARAMS
|
||||||
-----
|
-----
|
||||||
@ -231,6 +249,14 @@ def assiduites(etudid: int = None, nip=None, ine=None, with_query: bool = False)
|
|||||||
date_fin:date de fin de l'assiduité (inférieur ou égal)
|
date_fin:date de fin de l'assiduité (inférieur ou égal)
|
||||||
etat:etat de l'étudiant → absent, present ou retard
|
etat:etat de l'étudiant → absent, present ou retard
|
||||||
formsemestre_id:l'identifiant du formsemestre concerné par l'assiduité
|
formsemestre_id:l'identifiant du formsemestre concerné par l'assiduité
|
||||||
|
with_justif:ajoute les justificatifs liés à l'assiduité
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduites/1;
|
||||||
|
/assiduites/1/query?etat=retard;
|
||||||
|
/assiduites/1/query?moduleimpl_id=1;
|
||||||
|
/assiduites/1/query?with_justifs=;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -300,6 +326,11 @@ def assiduites_evaluations(etudid: int = None, nip=None, ine=None):
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduites/1/evaluations;
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -384,6 +415,7 @@ def assiduites_group(with_query: bool = False):
|
|||||||
etat:<array[string]:etat>
|
etat:<array[string]:etat>
|
||||||
etudids:<array[int]:etudids>
|
etudids:<array[int]:etudids>
|
||||||
formsemestre_id:<int:formsemestre_id>
|
formsemestre_id:<int:formsemestre_id>
|
||||||
|
with_justif:<bool:with_justif>
|
||||||
|
|
||||||
PARAMS
|
PARAMS
|
||||||
-----
|
-----
|
||||||
@ -395,6 +427,11 @@ def assiduites_group(with_query: bool = False):
|
|||||||
etat:etat de l'étudiant → absent, present ou retard
|
etat:etat de l'étudiant → absent, present ou retard
|
||||||
etudids:liste des ids des étudiants concernés par la recherche
|
etudids:liste des ids des étudiants concernés par la recherche
|
||||||
formsemestre_id:l'identifiant du formsemestre concerné par l'assiduité
|
formsemestre_id:l'identifiant du formsemestre concerné par l'assiduité
|
||||||
|
with_justifs:ajoute les justificatifs liés à l'assiduité
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduites/group/query?etudids=1,2,3;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -474,6 +511,13 @@ def assiduites_formsemestre(formsemestre_id: int, with_query: bool = False):
|
|||||||
date_fin:date de fin de l'assiduité (inférieur ou égal)
|
date_fin:date de fin de l'assiduité (inférieur ou égal)
|
||||||
etat:etat de l'étudiant → absent, present ou retard
|
etat:etat de l'étudiant → absent, present ou retard
|
||||||
formsemestre_id:l'identifiant du formsemestre concerné par l'assiduité
|
formsemestre_id:l'identifiant du formsemestre concerné par l'assiduité
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduites/formsemestre/1;
|
||||||
|
/assiduites/formsemestre/1/query?etat=retard;
|
||||||
|
/assiduites/formsemestre/1/query?moduleimpl_id=1;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération du formsemestre à partir du formsemestre_id
|
# Récupération du formsemestre à partir du formsemestre_id
|
||||||
@ -549,6 +593,13 @@ def assiduites_formsemestre_count(
|
|||||||
formsemestre_id:l'identifiant du formsemestre concerné par l'assiduité
|
formsemestre_id:l'identifiant du formsemestre concerné par l'assiduité
|
||||||
metric: la/les métriques de comptage (journee, demi, heure, compte)
|
metric: la/les métriques de comptage (journee, demi, heure, compte)
|
||||||
split: divise le comptage par état
|
split: divise le comptage par état
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduites/formsemestre/1/count;
|
||||||
|
/assiduites/formsemestre/1/count/query?etat=retard;
|
||||||
|
/assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération du formsemestre à partir du formsemestre_id
|
# Récupération du formsemestre à partir du formsemestre_id
|
||||||
@ -621,6 +672,11 @@ def assiduite_create(etudid: int = None, nip=None, ine=None):
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduite/1/create;[{""date_debut"": ""2023-10-27T08:00"",""date_fin"": ""2023-10-27T10:00"",""etat"": ""absent""}]
|
||||||
|
/assiduite/1/create;[{""date_debut"": ""2023-10-27T08:00"",""date_fin"": ""2023-10-27T10:00"",""etat"": ""absent""}]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Récupération de l'étudiant
|
# Récupération de l'étudiant
|
||||||
etud: Identite = tools.get_etud(etudid, nip, ine)
|
etud: Identite = tools.get_etud(etudid, nip, ine)
|
||||||
@ -696,6 +752,11 @@ def assiduites_create():
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduites/create;[{""etudid"":1,""date_debut"": ""2023-10-26T08:00"",""date_fin"": ""2023-10-26T10:00"",""etat"": ""absent""}]
|
||||||
|
/assiduites/create;[{""etudid"":-1,""date_debut"": ""2023-10-26T08:00"",""date_fin"": ""2023-10-26T10:00"",""etat"": ""absent""}]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
create_list: list[object] = request.get_json(force=True)
|
create_list: list[object] = request.get_json(force=True)
|
||||||
@ -874,6 +935,10 @@ def assiduite_delete():
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduite/delete;[2,2,3]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Récupération des ids envoyés dans la liste
|
# Récupération des ids envoyés dans la liste
|
||||||
assiduites_list: list[int] = request.get_json(force=True)
|
assiduites_list: list[int] = request.get_json(force=True)
|
||||||
@ -958,6 +1023,13 @@ def assiduite_edit(assiduite_id: int):
|
|||||||
"est_just"?: bool
|
"est_just"?: bool
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduite/1/edit;{""etat"":""absent""}
|
||||||
|
/assiduite/1/edit;{""moduleimpl_id"":2}
|
||||||
|
/assiduite/1/edit;{""etat"": ""retard"",""moduleimpl_id"":3}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération de l'assiduité à modifier
|
# Récupération de l'assiduité à modifier
|
||||||
@ -1013,6 +1085,12 @@ def assiduites_edit():
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/assiduites/edit;[{""etat"":""absent"",""assiduite_id"":1}]
|
||||||
|
/assiduites/edit;[{""moduleimpl_id"":2,""assiduite_id"":1}]
|
||||||
|
/assiduites/edit;[{""etat"": ""retard"",""moduleimpl_id"":3,""assiduite_id"":1}]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
edit_list: list[object] = request.get_json(force=True)
|
edit_list: list[object] = request.get_json(force=True)
|
||||||
|
|
||||||
|
@ -55,6 +55,11 @@ def justificatif(justif_id: int = None):
|
|||||||
"user_id": 1 or null,
|
"user_id": 1 or null,
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatif/1;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return get_model_api_object(
|
return get_model_api_object(
|
||||||
@ -114,6 +119,12 @@ def justificatifs(etudid: int = None, nip=None, ine=None, with_query: bool = Fal
|
|||||||
order:retourne les justificatifs dans l'ordre décroissant (non vide = True)
|
order:retourne les justificatifs dans l'ordre décroissant (non vide = True)
|
||||||
courant:retourne les justificatifs de l'année courante (bool : v/t ou f)
|
courant:retourne les justificatifs de l'année courante (bool : v/t ou f)
|
||||||
group_id:<int:group_id>
|
group_id:<int:group_id>
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatifs/1;
|
||||||
|
/justificatifs/1/query?etat=attente;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Récupération de l'étudiant
|
# Récupération de l'étudiant
|
||||||
etud: Identite = tools.get_etud(etudid, nip, ine)
|
etud: Identite = tools.get_etud(etudid, nip, ine)
|
||||||
@ -176,6 +187,11 @@ def justificatifs_dept(dept_id: int = None, with_query: bool = False):
|
|||||||
order:retourne les justificatifs dans l'ordre décroissant (non vide = True)
|
order:retourne les justificatifs dans l'ordre décroissant (non vide = True)
|
||||||
courant:retourne les justificatifs de l'année courante (bool : v/t ou f)
|
courant:retourne les justificatifs de l'année courante (bool : v/t ou f)
|
||||||
group_id:<int:group_id>
|
group_id:<int:group_id>
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatifs/dept/1;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération du département et des étudiants du département
|
# Récupération du département et des étudiants du département
|
||||||
@ -269,6 +285,11 @@ def justificatifs_formsemestre(formsemestre_id: int, with_query: bool = False):
|
|||||||
order:retourne les justificatifs dans l'ordre décroissant (non vide = True)
|
order:retourne les justificatifs dans l'ordre décroissant (non vide = True)
|
||||||
courant:retourne les justificatifs de l'année courante (bool : v/t ou f)
|
courant:retourne les justificatifs de l'année courante (bool : v/t ou f)
|
||||||
group_id:<int:group_id>
|
group_id:<int:group_id>
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatifs/formsemestre/1;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération du formsemestre
|
# Récupération du formsemestre
|
||||||
@ -336,6 +357,9 @@ def justif_create(etudid: int = None, nip=None, ine=None):
|
|||||||
...
|
...
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatif/1/create;[{""date_debut"": ""2023-10-27T08:00"",""date_fin"": ""2023-10-27T10:00"",""etat"": ""attente""}]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -477,6 +501,12 @@ def justif_edit(justif_id: int):
|
|||||||
"date_fin"?: str
|
"date_fin"?: str
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatif/1/edit;{""etat"":""valide""}
|
||||||
|
/justificatif/1/edit;{""raison"":""MEDIC""}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération du justificatif à modifier
|
# Récupération du justificatif à modifier
|
||||||
@ -591,6 +621,11 @@ def justif_delete():
|
|||||||
...
|
...
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatif/delete;[2, 2, 3]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération des justif_ids
|
# Récupération des justif_ids
|
||||||
@ -836,6 +871,11 @@ def justif_remove(justif_id: int = None):
|
|||||||
def justif_list(justif_id: int = None):
|
def justif_list(justif_id: int = None):
|
||||||
"""
|
"""
|
||||||
Liste les fichiers du justificatif
|
Liste les fichiers du justificatif
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatif/1/list;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération du justificatif concerné
|
# Récupération du justificatif concerné
|
||||||
@ -878,6 +918,11 @@ def justif_list(justif_id: int = None):
|
|||||||
def justif_justifies(justif_id: int = None):
|
def justif_justifies(justif_id: int = None):
|
||||||
"""
|
"""
|
||||||
Liste assiduite_id justifiées par le justificatif
|
Liste assiduite_id justifiées par le justificatif
|
||||||
|
|
||||||
|
SAMPLES
|
||||||
|
-------
|
||||||
|
/justificatif/1/justifies;
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# On récupère le justificatif concerné
|
# On récupère le justificatif concerné
|
||||||
|
@ -1,36 +1,38 @@
|
|||||||
"entry_name";"url";"permission";"method";"content"
|
"entry_name";"url";"permission";"method";"content"
|
||||||
"assiduite";"/assiduite/1";"ScoView";"GET";
|
"assiduite";"/assiduite/1";"ScoView";"GET";
|
||||||
"assiduites";"/assiduites/1";"ScoView";"GET";
|
"assiduite_justificatifs";"/assiduite/1/justificatifs";"ScoView";"GET";
|
||||||
"assiduites";"/assiduites/1/query?etat=retard";"ScoView";"GET";
|
"assiduite_justificatifs";"/assiduite/1/justificatifs/long";"ScoView";"GET";
|
||||||
"assiduites";"/assiduites/1/query?moduleimpl_id=1";"ScoView";"GET";
|
|
||||||
"assiduites";"/assiduites/1/query?with_justifs=";"ScoView";"GET";
|
|
||||||
"assiduites_count";"/assiduites/1/count";"ScoView";"GET";
|
"assiduites_count";"/assiduites/1/count";"ScoView";"GET";
|
||||||
"assiduites_count";"/assiduites/1/count/query?etat=retard";"ScoView";"GET";
|
"assiduites_count";"/assiduites/1/count/query?etat=retard";"ScoView";"GET";
|
||||||
"assiduites_count";"/assiduites/1/count/query?split";"ScoView";"GET";
|
"assiduites_count";"/assiduites/1/count/query?split";"ScoView";"GET";
|
||||||
"assiduites_count";"/assiduites/1/count/query?etat=present,retard&metric=compte,heure";"ScoView";"GET";
|
"assiduites_count";"/assiduites/1/count/query?etat=present,retard&metric=compte,heure";"ScoView";"GET";
|
||||||
|
"assiduites";"/assiduites/1";"ScoView";"GET";
|
||||||
|
"assiduites";"/assiduites/1/query?etat=retard";"ScoView";"GET";
|
||||||
|
"assiduites";"/assiduites/1/query?moduleimpl_id=1";"ScoView";"GET";
|
||||||
|
"assiduites";"/assiduites/1/query?with_justifs=";"ScoView";"GET";
|
||||||
|
"assiduites_evaluations";"/assiduites/1/evaluations";"ScoView";"GET";
|
||||||
|
"assiduites_group";"/assiduites/group/query?etudids=1,2,3";"ScoView";"GET";
|
||||||
"assiduites_formsemestre";"/assiduites/formsemestre/1";"ScoView";"GET";
|
"assiduites_formsemestre";"/assiduites/formsemestre/1";"ScoView";"GET";
|
||||||
"assiduites_formsemestre";"/assiduites/formsemestre/1/query?etat=retard";"ScoView";"GET";
|
"assiduites_formsemestre";"/assiduites/formsemestre/1/query?etat=retard";"ScoView";"GET";
|
||||||
"assiduites_formsemestre";"/assiduites/formsemestre/1/query?moduleimpl_id=1";"ScoView";"GET";
|
"assiduites_formsemestre";"/assiduites/formsemestre/1/query?moduleimpl_id=1";"ScoView";"GET";
|
||||||
"assiduites_formsemestre_count";"/assiduites/formsemestre/1/count";"ScoView";"GET";
|
"assiduites_formsemestre_count";"/assiduites/formsemestre/1/count";"ScoView";"GET";
|
||||||
"assiduites_formsemestre_count";"/assiduites/formsemestre/1/count/query?etat=retard";"ScoView";"GET";
|
"assiduites_formsemestre_count";"/assiduites/formsemestre/1/count/query?etat=retard";"ScoView";"GET";
|
||||||
"assiduites_formsemestre_count";"/assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure";"ScoView";"GET";
|
"assiduites_formsemestre_count";"/assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure";"ScoView";"GET";
|
||||||
"assiduites_group";"/assiduites/group/query?etudids=1,2,3";"ScoView";"GET";
|
|
||||||
"assiduites_justificatifs";"/assiduite/1/justificatifs";"ScoView";"GET";
|
|
||||||
"assiduites_justificatifs";"/assiduite/1/justificatifs/long";"ScoView";"GET";
|
|
||||||
"assiduite_create";"/assiduite/1/create";"UsersAdmin";"POST";"[{""date_debut"": ""2023-10-27T08:00"",""date_fin"": ""2023-10-27T10:00"",""etat"": ""absent""}]"
|
"assiduite_create";"/assiduite/1/create";"UsersAdmin";"POST";"[{""date_debut"": ""2023-10-27T08:00"",""date_fin"": ""2023-10-27T10:00"",""etat"": ""absent""}]"
|
||||||
"assiduite_create";"/assiduite/1/create";"UsersAdmin";"POST";"[{""date_debut"": ""2023-10-27T08:00"",""date_fin"": ""2023-10-27T10:00"",""etat"": ""absent""}]"
|
"assiduite_create";"/assiduite/1/create";"UsersAdmin";"POST";"[{""date_debut"": ""2023-10-27T08:00"",""date_fin"": ""2023-10-27T10:00"",""etat"": ""absent""}]"
|
||||||
"assiduites_create";"/assiduites/create";"UsersAdmin";"POST";"[{""etudid"":1,""date_debut"": ""2023-10-26T08:00"",""date_fin"": ""2023-10-26T10:00"",""etat"": ""absent""}]"
|
"assiduites_create";"/assiduites/create";"UsersAdmin";"POST";"[{""etudid"":1,""date_debut"": ""2023-10-26T08:00"",""date_fin"": ""2023-10-26T10:00"",""etat"": ""absent""}]"
|
||||||
"assiduites_create";"/assiduites/create";"UsersAdmin";"POST";"[{""etudid"":-1,""date_debut"": ""2023-10-26T08:00"",""date_fin"": ""2023-10-26T10:00"",""etat"": ""absent""}]"
|
"assiduites_create";"/assiduites/create";"UsersAdmin";"POST";"[{""etudid"":-1,""date_debut"": ""2023-10-26T08:00"",""date_fin"": ""2023-10-26T10:00"",""etat"": ""absent""}]"
|
||||||
|
"assiduite_delete";"/assiduite/delete";"UsersAdmin";"POST";"[2,2,3]"
|
||||||
"assiduite_edit";"/assiduite/1/edit";"UsersAdmin";"POST";"{""etat"":""absent""}"
|
"assiduite_edit";"/assiduite/1/edit";"UsersAdmin";"POST";"{""etat"":""absent""}"
|
||||||
"assiduite_edit";"/assiduite/1/edit";"UsersAdmin";"POST";"{""moduleimpl_id"":2}"
|
"assiduite_edit";"/assiduite/1/edit";"UsersAdmin";"POST";"{""moduleimpl_id"":2}"
|
||||||
"assiduite_edit";"/assiduite/1/edit";"UsersAdmin";"POST";"{""etat"": ""retard"",""moduleimpl_id"":3}"
|
"assiduite_edit";"/assiduite/1/edit";"UsersAdmin";"POST";"{""etat"": ""retard"",""moduleimpl_id"":3}"
|
||||||
"assiduite_delete";"/assiduite/delete";"UsersAdmin";"POST";"[2,2,3]"
|
|
||||||
"justificatif";"/justificatif/1";"ScoView";"GET";
|
"justificatif";"/justificatif/1";"ScoView";"GET";
|
||||||
"justificatifs";"/justificatifs/1";"ScoView";"GET";
|
"justificatifs";"/justificatifs/1";"ScoView";"GET";
|
||||||
"justificatifs";"/justificatifs/1/query?etat=attente";"ScoView";"GET";
|
"justificatifs";"/justificatifs/1/query?etat=attente";"ScoView";"GET";
|
||||||
"justificatifs_dept";"/justificatifs/dept/1";"ScoView";"GET";
|
"justificatifs_dept";"/justificatifs/dept/1";"ScoView";"GET";
|
||||||
"justificatifs_formsemestre";"/justificatifs/formsemestre/1";"ScoView";"GET";
|
"justificatifs_formsemestre";"/justificatifs/formsemestre/1";"ScoView";"GET";
|
||||||
"justificatif_create";"/justificatif/1/create";"UsersAdmin";"POST";"[{""date_debut"": ""2023-10-27T08:00"",""date_fin"": ""2023-10-27T10:00"",""etat"": ""attente""}]"
|
"justif_edit";"/justificatif/1/edit";"UsersAdmin";"POST";"{""etat"":""valide""}"
|
||||||
"justificatif_edit";"/justificatif/1/edit";"UsersAdmin";"POST";"{""etat"":""valide""}"
|
"justif_edit";"/justificatif/1/edit";"UsersAdmin";"POST";"{""raison"":""MEDIC""}"
|
||||||
"justificatif_edit";"/justificatif/1/edit";"UsersAdmin";"POST";"{""raison"":""MEDIC""}"
|
"justif_delete";"/justificatif/delete";"UsersAdmin";"POST";"[2, 2, 3]"
|
||||||
"justificatif_delete";"/justificatif/delete";"UsersAdmin";"POST";"[2,2,3]"
|
"justif_list";"/justificatif/1/list";"ScoView";"GET";
|
||||||
|
"justif_justifies";"/justificatif/1/justifies";"UsersAdmin";"GET";
|
|
@ -4,13 +4,14 @@ Script permettant de générer une carte SVG de l'API de ScoDoc
|
|||||||
Écrit par Matthias HARTMANN
|
Écrit par Matthias HARTMANN
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
|
||||||
import xml.etree.ElementTree as ET
|
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
import unicodedata
|
import unicodedata
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
from flask import render_template
|
||||||
|
|
||||||
from app.auth.models import Permission
|
from app.auth.models import Permission
|
||||||
from flask import render_template
|
|
||||||
|
|
||||||
|
|
||||||
class COLORS:
|
class COLORS:
|
||||||
@ -541,6 +542,7 @@ def analyze_api_routes(app, endpoint_start: str) -> tuple:
|
|||||||
"description": doc_dict.get("", ""),
|
"description": doc_dict.get("", ""),
|
||||||
"params": doc_dict.get("PARAMS", ""),
|
"params": doc_dict.get("PARAMS", ""),
|
||||||
"category": doc_dict.get("CATEGORY", [False])[0] or category,
|
"category": doc_dict.get("CATEGORY", [False])[0] or category,
|
||||||
|
"samples": doc_dict.get("SAMPLES"),
|
||||||
}
|
}
|
||||||
|
|
||||||
# On met à jour le token courant pour le prochain segment
|
# On met à jour le token courant pour le prochain segment
|
||||||
@ -828,19 +830,58 @@ def _gen_table(lines: list[dict]) -> str:
|
|||||||
"""
|
"""
|
||||||
Génère un tableau markdown à partir d'une liste de lignes
|
Génère un tableau markdown à partir d'une liste de lignes
|
||||||
|
|
||||||
lines : liste de dictionnaire au format :
|
lines : liste de dictionnaire au format doc_lines.
|
||||||
|
|
||||||
- doctable : dict généré par parse_doctable_doc
|
|
||||||
- nom : nom de la fonction associée à la route
|
|
||||||
- method : GET ou POST
|
|
||||||
- permission : Permissions de la route (auto récupérée)
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
table = _gen_table_head()
|
table = _gen_table_head()
|
||||||
table += "\n".join([_gen_table_line(line) for line in lines])
|
table += "\n".join([_gen_table_line(line) for line in lines])
|
||||||
return table
|
return table
|
||||||
|
|
||||||
|
|
||||||
|
def _gen_csv_line(doc_line: dict) -> str:
|
||||||
|
"""
|
||||||
|
Génère les lignes de tableau csv en fonction d'une route (doc_line)
|
||||||
|
|
||||||
|
format :
|
||||||
|
"entry_name";"url";"permission";"method";"content"
|
||||||
|
"""
|
||||||
|
|
||||||
|
entry_name: str = doc_line.get("nom", "")
|
||||||
|
method: str = doc_line.get("method", "GET")
|
||||||
|
permission: str = (
|
||||||
|
"UsersAdmin" if doc_line.get("permission") != "ScoView" else "ScoView"
|
||||||
|
)
|
||||||
|
|
||||||
|
samples: list[str] = doc_line.get("samples", [])
|
||||||
|
csv_lines: list[str] = []
|
||||||
|
for sample in samples:
|
||||||
|
url, content = sample.split(";", maxsplit=1)
|
||||||
|
csv_line = f'"{entry_name}";"{url}";"{permission}";"{method}";'
|
||||||
|
if content:
|
||||||
|
csv_line += f'"{content}"'
|
||||||
|
csv_lines.append(csv_line)
|
||||||
|
|
||||||
|
return "\n".join(csv_lines)
|
||||||
|
|
||||||
|
|
||||||
|
def _gen_csv(lines: list[dict], filename: str = "/tmp/samples.csv") -> str:
|
||||||
|
"""
|
||||||
|
Génère un fichier csv à partir d'une liste de lignes
|
||||||
|
|
||||||
|
lines : liste de dictionnaire au format doc_lines.
|
||||||
|
"""
|
||||||
|
csv = '"entry_name";"url";"permission";"method";"content"\n'
|
||||||
|
csv += "\n".join(
|
||||||
|
[_gen_csv_line(line) for line in lines if line.get("samples") is not None]
|
||||||
|
)
|
||||||
|
|
||||||
|
with open(filename, "w", encoding="UTF-8") as f:
|
||||||
|
f.write(csv)
|
||||||
|
|
||||||
|
print(
|
||||||
|
f"Les samples ont été générés avec succès. Vous pouvez le consulter à l'adresse suivante : {filename}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _write_gen_table(table: str, filename: str = "/tmp/api_table.md"):
|
def _write_gen_table(table: str, filename: str = "/tmp/api_table.md"):
|
||||||
"""Ecriture du fichier md avec la table"""
|
"""Ecriture du fichier md avec la table"""
|
||||||
with open(filename, "w", encoding="UTF-8") as f:
|
with open(filename, "w", encoding="UTF-8") as f:
|
||||||
@ -856,6 +897,12 @@ def doc_route(doctable: dict) -> str:
|
|||||||
jinja_obj.update(doctable)
|
jinja_obj.update(doctable)
|
||||||
jinja_obj["nom"] = doctable["nom"].strip() # on retire les caractères blancs
|
jinja_obj["nom"] = doctable["nom"].strip() # on retire les caractères blancs
|
||||||
|
|
||||||
|
if doctable.get("samples") is not None:
|
||||||
|
jinja_obj["sample"] = {
|
||||||
|
"nom": f"{jinja_obj['nom']}.json",
|
||||||
|
"href": f"{jinja_obj['nom']}.json.md",
|
||||||
|
}
|
||||||
|
|
||||||
jinja_obj["query"]: bool
|
jinja_obj["query"]: bool
|
||||||
if jinja_obj["query"]:
|
if jinja_obj["query"]:
|
||||||
jinja_obj["nom"] += "(-query)"
|
jinja_obj["nom"] += "(-query)"
|
||||||
@ -875,11 +922,6 @@ def doc_route(doctable: dict) -> str:
|
|||||||
descr = "\n".join(s for s in doctable["description"])
|
descr = "\n".join(s for s in doctable["description"])
|
||||||
jinja_obj["description"] = descr.strip()
|
jinja_obj["description"] = descr.strip()
|
||||||
|
|
||||||
jinja_obj["sample"] = {
|
|
||||||
"nom": f"{jinja_obj['nom']}.json",
|
|
||||||
"href": f"{jinja_obj['nom']}.json.md",
|
|
||||||
}
|
|
||||||
|
|
||||||
return render_template("doc/apidoc.j2", doc=jinja_obj)
|
return render_template("doc/apidoc.j2", doc=jinja_obj)
|
||||||
|
|
||||||
|
|
||||||
@ -914,6 +956,7 @@ def gen_api_doc(app, endpoint_start="api."):
|
|||||||
|
|
||||||
table_api = gen_api_map(api_map, doctable_lines)
|
table_api = gen_api_map(api_map, doctable_lines)
|
||||||
mdpage = render_template("doc/ScoDoc9API.j2", doc_api=mddoc, table_api=table_api)
|
mdpage = render_template("doc/ScoDoc9API.j2", doc_api=mddoc, table_api=table_api)
|
||||||
|
_gen_csv(list(doctable_lines.values()))
|
||||||
|
|
||||||
fname = "/tmp/ScoDoc9API.md"
|
fname = "/tmp/ScoDoc9API.md"
|
||||||
with open(fname, "w", encoding="utf-8") as f:
|
with open(fname, "w", encoding="utf-8") as f:
|
||||||
|
Loading…
Reference in New Issue
Block a user