...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
api_url = "https://esup-sgc.univ-ville.fr"
response = requests.post(api_url, data={"eppn":"toto@univ-ville.fr"}, files={"PhotoFile.file":("photo-toto.png", open("/tmp/photo-toto.png","rb"), "image/png")})
card_id = response.text
response = requests.post("%s/setCardEtat/%s" % (api_url, card_id), data={"etat":"REQUEST_CHECKED"})
print(response.text) |
Les etats disponibles et permis pour une carte sont fonction du cycle de vie (workflow) de la carte dans esup-sgc - etat pouvant prendre pour valeur :
| Bloc de code |
|---|
NEW, REQUEST_CHECKED, CANCELED, IN_PRINT, PRINTED, IN_ENCODE, ENCODED, ENABLED, REJECTED, DISABLED, CADUC, DESTROYED, RENEWED |
Fonction du workflow, le web-service se comporte de la même façon que l'interaction que peut avoir le manager avec la carte d'un utilisateur :
- on peut passer de l'état NEW à REJECTED par exemple ;
- mais pas de DESTROYED à NEW par exemple toujours ;
- les changements d'état par web service ont le même comportement que via l'interface web, des mails sont envoyés si des messages (sans admin/messages) ont été configurés en ce sens ;
- ainsi l'impression d'une carte (via l'édition en 1 passe) peut être déclenchée également par cee même web service, cf q/r plus bas ;
- NEW ne peut pas être utilisé par exemple concrètement ici, pour demander une nouvelle carte il faut utiliser le web-service de demande de carte décrit ci-avant ;
- de même, RENEWED ne peut pas être utilisé également dans ce web-service, il faut utiliser le web-service décrit ci-après.
Comment faire un renouvellement de carte en utilisant le webservice proposé par ESUP-SGC ?
Le renouvellement de carte diffère d'une demande de carte dans le sens où celui-ci permet de conserver la photo de l'ancienne carte simplement et qu'il attend donc simplement le numéro de l'ancienne carte que l'on souhaite renouveller.
Cela peut être intéressant dans le cadre d'une opération de renouvellement en masse des cartes, pour un changement de charte graphique graphique (thème ou look) de la carte institutionnel par exemple.
Le Web Service pourra s'utiliser de cette façon :
| Bloc de code |
|---|
curl -X POST https://esup-sgc.univ-ville.fr/wsrest/api/renew/1818864 |
où 1818864 est le numéro de carte à renouveler.
Peut-on lancer une édition/impression de carte par Web Serbvice ?
Oui via l'édition en 1 passe, cela reprend les mêmes mécansimes que pour l'édition depuis un smartphone par exemple.
Le web-service à appeler est simplement celui permettant le changement d'état d'une carte, il faidra lui ajouter en paramètre l'eppn d'un "utilisateur" lançant esup-sgc-client pour édition les cartes en 1 passe.
Si on reprend l'exemple précédent en python, la demande de carte jusqu'à son édition peut se faire entièrement par web-service ainsi :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
api_url = "https://esup-sgc.univ-ville.fr"
response = requests.post(api_url, data={"eppn":"toto@univ-ville.fr"}, files={"PhotoFile.file":("photo-toto.png", open("/tmp/photo-toto.png","rb"), "image/png")})
card_id = response.text
requests.post("%s/setCardEtat/%s" % (api_url, card_id), data={"etat":"REQUEST_CHECKED"})
requests.post("%s/setCardEtat/%s" % (api_url, card_id), data={"etat":"IN_PRINT", "printerEppn":"dsiprint@univ-ville.fr"})
|
De quelles données utilisateur issues du SI esup-sgc a besoin ?
...