Merge branch 'master' into bonus-malus

This commit is contained in:
Jean-Marie Place 2023-07-29 08:14:11 +02:00
commit 042c80387f
19 changed files with 398 additions and 208 deletions

View File

@ -1434,7 +1434,6 @@ valeurs numériques mais pas JSON compliant à cause des `NaN`.
Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
<!-- TODO: faire les samples -->
#### Structure Assiduité
| attribut | type | commentaire |
@ -1467,7 +1466,10 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:** `etudid`
* **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Query string:**
* `etat` ('present','retard','absent)
* `moduleimpl_id` (X : id du moduleimpl concerné)
@ -1479,6 +1481,12 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:**
* `/assiduites/<int:etudid>`
* `/assiduites/<int:etudid>/query?`
* `/assiduites/etudid/<int:etudid>`
* `/assiduites/etudid/<int:etudid>/query?`
* `/assiduites/nip/<nip>`
* `/assiduites/nip/<nip>/query?`
* `/assiduites/ine/<ine>`
* `/assiduites/ine/<ine>/query?`
* **Exemple d'utilisation:**
* `/api/assiduites/1`
* `/api/assiduites/1/query?etat=retard`
@ -1490,7 +1498,10 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:** `etudid`
* **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Query string:**
* `etat` ('present','retard','absent)
* `moduleimpl_id` (X : id du moduleimpl concerné)
@ -1503,6 +1514,12 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:**
* `/assiduites/<int:etudid>/count`
* `/assiduites/<int:etudid>/count/query?`
* `/assiduites/etudid/<int:etudid>/count`
* `/assiduites/etudid/<int:etudid>/count/query?`
* `/assiduites/nip/<nip>/count`
* `/assiduites/nip/<nip>/count/query?`
* `/assiduites/ine/<ine>/count`
* `/assiduites/ine/<ine>/count/query?`
* **Exemple d'utilisation:**
* `/api/assiduites/1`
* `/api/assiduites/1/count/query?etat=retard`
@ -1515,7 +1532,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:** `etudid`
* **Paramètres:** `formsemestre_id`
* **Query string:**
* `etat` ('present','retard','absent)
* `moduleimpl_id` (X : id du moduleimpl concerné)
@ -1537,7 +1554,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:** `etudid`
* **Paramètres:** `formsemestre_id`
* **Query string:**
* `etat` ('present','retard','absent)
* `moduleimpl_id` (X : id du moduleimpl concerné)
@ -1585,7 +1602,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduites-create**
* **Méthode:** POST
* **Permission: `ScoAssiduiteChange`**
* **Permission: `ScoAbsChange`**
* **Data:**
```json
@ -1607,7 +1624,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `/assiduites/create`
* **Exemple d'utilisation:** `/api/assiduites/create`
> `[{date_debut: "2022-10-27T08:00",date_fin: "2022-10-27T10:00",etat: "absent",etudid:1}]`
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent","etudid":1}]`
* **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST.
@ -1615,8 +1632,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduite-create**
* **Méthode:** POST
* **Permission: `ScoAssiduiteChange`**
* **Paramètres:** `etudid`
* **Permission: `ScoAbsChange`**
* **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Data:**
```json
@ -1634,9 +1654,12 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:**
* `/assiduite/<int:etudid>/create`
* `/assiduites/etudid/<int:etudid>/create`
* `/assiduites/nip/<nip>/create`
* `/assiduites/ine/<ine>/create`
* **Exemple d'utilisation:** `/api/assiduite/1/create`
> `[{date_debut: "2022-10-27T08:00",date_fin: "2022-10-27T10:00",etat: "absent"}]`
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent"}]`
* **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST.
* **Exemple de résultat:** [assiduite_create.json](samples/sample_assiduite_create.json.md)
@ -1644,7 +1667,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduite-edit**
* **Méthode:** POST
* **Permission: `ScoAssiduiteChange`**
* **Permission: `ScoAbsChange`**
* **Paramètres:** `assiduite_id`
* **Data:**
@ -1659,7 +1682,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:** `/assiduite/<int:assiduite_id>/edit`
* **Exemple d'utilisation:** `/api/assiduite/1/edit`
> `{etat: "absent"}`
> `{"etat": "absent"}`
* **Résultat:** Modifie l'assiduité désignée. Renvoie une erreur si la
modification rend incompatible la plage de l'assiduité par rapport aux autres
@ -1669,16 +1692,16 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduites-edit**
* **Méthode:** POST
* **Permission: `ScoAssiduiteChange`**
* **Permission: `ScoAbsChange`**
* **Data:**
```json
[
{
"etudid":<int>
"etudid":<int>,
"etat"?: <string>,
"moduleimpl_id"?: <int>
"desc"?:<string>
"moduleimpl_id"?: <int>,
"desc"?:<string>,
},
...
]
@ -1688,14 +1711,14 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `/assiduites/edit`
* **Exemple d'utilisation:** `/api/assiduites/edit`
> `[{etat: "absent",assiduite_id:1},{etat: "retard",moduleimpl_id:12,assiduite_id:2}]`
> `[{"etat": "absent","assiduite_id":1},{"etat": "retard","moduleimpl_id":12,"assiduite_id":2}]`
* **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST.
#### **assiduite-delete**
* **Méthode:** POST
* **Permission: `ScoAssiduiteChange`**
* **Permission: `ScoAbsChange`**
* **Data:**
```json
@ -1718,14 +1741,15 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
| attribut | type | commentaire |
| :----------- | :------------- | :------------------------------------------------------------ |
| *justif_id* | int | identifiant unique |
| *etudid* | int | identifiant unique de l'étudiant concerné par le justificatif |
| *date_debut* | string | date ISO du début de la période du justificatif |
| *date_fin* | string | date ISO de la fin de la période du justificatif |
| *etat* | string | état du justificatif ( attente, valide, non_valide, modifie) |
| *raison* | string ou null | explication du justificatif si présente |
| *fichier* | string | identifiant de l'archivage des fichiers |
| *entry_date* | string | date ISO de l'entrée du justificatif |
| *justif_id* | int | identifiant unique |
| *etudid* | int | identifiant unique de l'étudiant concerné par le justificatif |
| *date_debut* | string | date ISO du début de la période du justificatif |
| *date_fin* | string | date ISO de la fin de la période du justificatif |
| *etat* | string | état du justificatif ( attente, valide, non_valide, modifie) |
| *raison* | string ou null | explication du justificatif si présente |
| *fichier* | string | identifiant de l'archivage des fichiers |
|*user_id* | int or null | identifiant de l'utilisateur ayant créé le justificatif |
| *entry_date* | string | date ISO de l'entrée du justificatif |
#### **justificatif**
@ -1741,14 +1765,23 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:** `etudid`
* **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Query string:**
* `etat` ( attente, valide, non_valide, modifie)
* `date_debut` (X : date format ISO)
* `date_fin` (X : date format ISO)
* **Routes:**
* `/justificatifs/<int:etudid>`
* `/justificatifs/<int:etudid>/query?etat=VALIDE`
* `/justificatifs/<int:etudid>/query`
* `/justificatifs/etudid/<etudid>`
* `/justificatifs/etudid/etudid>/query`
* `/justificatifs/nip/<nip>`
* `/justificatifs/nip/<nip>/query`
* `/justificatifs/ine/<ine>`
* `/justificatifs/ine/<ine>/query`
* **Exemple d'utilisation:**
* `/api/justificatifs/1`
* `/api/justificatifs/1/query?etat=modifie`
@ -1759,8 +1792,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-create**
* **Méthode:** POST
* **Permission: `ScoJustifChange`**
* **Paramètres:** `etudid`
* **Permission: `ScoAbsChange`**
* **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Data:**
```json
@ -1777,7 +1813,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
> Un fichier justificatif peut être importé dans scodoc après avoir créer l'objet justificatif voir [importer un justificatif](FichiersJustificatifs.md#importer-un-fichier)
* **Routes:** `/justificatif/<int:etudid>/create`
* **Routes:**
* `/justificatif/<int:etudid>/create`
* `/justificatif/etudid/<etudid>/create`
* `/justificatif/nip/<nip>/create`
* `/justificatif/ine/<ine>/create`
* **Exemple d'utilisation:** `/api/justificatif/1/create`
```json
@ -1798,7 +1838,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-edit**
* **Méthode:** POST
* **Permission: `ScoJustifChange`**
* **Permission: `ScoAbsChange`**
* **Paramètres:** `justif_id`
* **Data:**
@ -1814,7 +1854,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:** `/justificatif/<int:justif_id>/edit`
* **Exemple d'utilisation:** `/api/justificatif/1/edit`
> `{etat: "valide"}`
> `{"etat": "valide"}`
* **Résultat:** Modifie le justificatif désigné.
* **Exemple de résultat:** [justificatif-edit.json](samples/sample_justificatif_edit.json.md)
@ -1822,8 +1862,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-delete**
* **Méthode:** POST
* **Permission: `ScoJustifChange`**
* **Paramètres:** `etudid`
* **Permission: `ScoAbsChange`**
* **Data:**
```json
@ -1848,7 +1887,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-import**
* **Méthode:** POST
* **Permission: `ScoJustifChange`**
* **Permission: `ScoAbsChange`**
* **Paramètres:** `justif_id`
> Procédure d'importation de fichier : [importer un justificatif](FichiersJustificatifs.md#importer-un-fichier)
@ -1861,7 +1900,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-export**
* **Méthode:** POST
* **Permission: `ScoJustifChange`**
* **Permission: `ScoAbsChange`**
* **Paramètres:**
* `justif_id`
* `filename`
@ -1876,14 +1915,14 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-remove**
* **Méthode:** POST
* **Permission: `ScoJustifChange`**
* **Permission: `ScoAbsChange`**
* **Paramètres:** `justif_id`
> Procédure de suppression de fichier : [supprimer un justificatif](FichiersJustificatifs.md#supprimer-un-fichier)
* **Routes:** `/justificatif/<int:justif_id>/remove`
* **Résultat:** `{response:"removed"}` ou une erreur
* **Résultat:** `{"response":"removed"}` ou une erreur
* **Exemple de résultat:** [justificatif-remove.json](samples/sample_justificatif_remove.json.md)
#### **justificatif-list**

View File

@ -1,16 +1,18 @@
### assiduite
#### GET /assiduite/1
```json
{
"assiduite_id": 1,
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8
"assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
}
```

View File

@ -1,18 +1,21 @@
### assiduite_create
#### POST /assiduite/1/create
> `Content-Type: application/json`
>
>
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent"}]`
```json
{
"errors": {},
"success": {
"0": {
"assiduite_id": 60
}
"errors": [],
"success": [
{
"indice": 0,
"message": {
"assiduite_id": 60
}
}
]
}
```

View File

@ -1,23 +1,28 @@
### assiduite_delete
#### POST /assiduite/delete
> `Content-Type: application/json`
>
>
> `[2,2,3]`
```json
{
"errors": {
"1": "Assiduite non existante"
},
"success": {
"0": {
"OK": true
},
"2": {
"OK": true
}
"errors": [
{
"indice": 1,
"message": "Assiduite non existante"
}
],
"success": [
{
"indice": 0,
"message": "OK"
},
{
"indice": 2,
"message": "OK"
}
]
}
```

View File

@ -1,35 +1,37 @@
### assiduite_edit
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat": "retard","moduleimpl_id":3}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat":"absent"}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
>
> `{"moduleimpl_id":2}`
```json
{
"OK": true
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat": "retard","moduleimpl_id":3}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat":"absent"}`
```json
{
"OK": true
}
```

View File

@ -1,63 +1,71 @@
### assiduites
#### GET /assiduites/1
```json
[
{
"assiduite_id": 1,
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8
},
{
"assiduite_id": 2,
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13
},
"..."
{
"assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
},
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
]
```
#### GET /assiduites/1/query?etat=retard
```json
[
{
"assiduite_id": 2,
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13
},
{
"assiduite_id": 3,
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 14
},
"..."
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
{
"assiduite_id": 3,
"date_debut": "2022-09-27T08:00:00+0200",
"date_fin": "2022-09-27T10:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 14,
"user_id": null
},
"..."
]
```
#### GET /assiduites/1/query?moduleimpl_id=1
```json
[
"..."
]
```
```json
["..."]
```

View File

@ -1,30 +1,32 @@
### assiduites_count
#### GET /assiduites/1/count
```json
{
"compte": 4,
"demi": 3,
"heure": 6.0,
"journee": 4
"compte": 4,
"demi": 3,
"heure": 6.0,
"journee": 4
}
```
#### GET /assiduites/1/count/query?etat=present,retard&metric=compte,heure
```json
{
"compte": 4,
"heure": 6.0
"compte": 4,
"heure": 6.0
}
```
#### GET /assiduites/1/count/query?etat=retard
```json
{
"compte": 3,
"demi": 3,
"heure": 6.0,
"journee": 3
"compte": 3,
"demi": 3,
"heure": 6.0,
"journee": 3
}
```

View File

@ -1,23 +1,73 @@
### assiduites_formsemestre
#### GET /assiduites/formsemestre/1
```json
[
"..."
{
"assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
},
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
]
```
#### GET /assiduites/formsemestre/1/query?etat=retard
```json
[
"..."
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
]
```
#### GET /assiduites/formsemestre/1/query?moduleimpl_id=1
```json
[
"..."
{
"assiduite_id": 3,
"date_debut": "2022-09-27T08:00:00+0200",
"date_fin": "2022-09-27T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 1,
"user_id": null
},
"..."
]
```

View File

@ -1,30 +1,32 @@
### assiduites_formsemestre_count
#### GET /assiduites/formsemestre/1/count
```json
{
"compte": 0,
"demi": 0,
"heure": 0.0,
"journee": 0
"compte": 0,
"demi": 0,
"heure": 0.0,
"journee": 0
}
```
#### GET /assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure
```json
{
"compte": 0,
"heure": 0.0
"compte": 0,
"heure": 0.0
}
```
#### GET /assiduites/formsemestre/1/count/query?etat=retard
```json
{
"compte": 0,
"demi": 0,
"heure": 0.0,
"journee": 0
"compte": 0,
"demi": 0,
"heure": 0.0,
"journee": 0
}
```

View File

@ -3,14 +3,15 @@
#### GET /justificatif/1
```json
{
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T16:00:00+0200",
"entry_date": "2023-07-28T11:13:45+0200",
"etat": "VALIDE",
"etudid": 1,
"fichier": null,
"justif_id": 1,
"raison": "raison"
"raison": "raison",
"user_id": null
}
```

View File

@ -1,18 +1,22 @@
### justificatif_create
#### POST /justificatif/1/create
> `Content-Type: application/json`
>
>
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "attente"}]`
```json
{
"errors": {},
"success": {
"0": {
"justif_id": 12
}
"errors": [],
"success": [
{
"indice": 0,
"message": {
"couverture": [],
"justif_id": 12
}
}
]
}
```

View File

@ -1,23 +1,28 @@
### justificatif_delete
#### POST /justificatif/delete
> `Content-Type: application/json`
>
>
> `[2,2,3]`
```json
{
"errors": {
"1": "Justificatif non existant"
},
"success": {
"0": {
"OK": true
},
"2": {
"OK": true
}
"errors": [
{
"indice": 1,
"message": "Justificatif non existant"
}
],
"success": [
{
"indice": 0,
"message": "OK"
},
{
"indice": 2,
"message": "OK"
}
]
}
```

View File

@ -1,24 +1,31 @@
### justificatif_edit
#### POST /justificatif/1/edit
> `Content-Type: application/json`
>
>
> `{"etat":"valide"}`
```json
{
"OK": true
"couverture": {
"apr\u00e8s": [26],
"avant": [1, 26, 38]
}
}
```
#### POST /justificatif/1/edit
> `Content-Type: application/json`
>
>
> `{"raison":"MEDIC"}`
```json
{
"OK": true
"couverture": {
"apr\u00e8s": [26],
"avant": [1, 26, 38]
}
}
```

View File

@ -0,0 +1,7 @@
### justificatif_export
#### POST /justificatif/1/export/nom_fichier
```console
téléchargement du fichier
```

View File

@ -0,0 +1,11 @@
### justificatif_import
#### POST /justificatif/1/import
> `Content-Type: multipart/form-data`
>
> `binary file`
```json
{ "filename": "nom_du_fichier" }
```

View File

@ -0,0 +1,7 @@
### justificatif_justifies
#### GET /justificatif/1/justifies
```json
[1, 2, "..."]
```

View File

@ -0,0 +1,10 @@
### justificatif_list
#### GET /justificatif/1/list
```json
{
"total": 1,
"filenames": ["nom_fichier"]
}
```

View File

@ -0,0 +1,25 @@
### justificatif_remove
#### POST /justificatif/1/remove
> `Content-Type: application/json`
>
> `{"remove" : "all"}`
```json
{
"response": "remove"
}
```
#### POST /justificatif/1/remove
> `Content-Type: application/json`
>
> `{"remove" : "list", "filenames": ["nom_fichier"]}`
```json
{
"response": "remove"
}
```

View File

@ -1,26 +1,26 @@
### justificatifs
#### GET /justificatifs/1
```json
[
{
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "VALIDE",
"etudid": 1,
"fichier": null,
"justif_id": 1,
"raison": "raison"
},
"..."
{
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T16:00:00+0200",
"entry_date": "2023-07-28T11:13:45+0200",
"etat": "VALIDE",
"etudid": 1,
"fichier": null,
"justif_id": 1,
"raison": "raison",
"user_id": null
},
"..."
]
```
#### GET /justificatifs/1/query?etat=attente
```json
[
"..."
]
```
```json
["..."]
```