Connecteur appelé par le module cards. Il doit retourner la liste des cartes dématérialisées à afficher pour un utilisateur donné.
Paramètres d'appels
URL en méthode GET :
Bloc de code |
---|
<host>/<uri>/<username> |
- host : adresse du serveur
- uri : chemin éventuel vers le service
- username : identifiant (login) de l'utilisateur pour lequel on souhaite les informations et les rôles, c'est à dire l'utilisateur qui se connecte. Le login sera celui retourné par le serveur CAS après authentification.
Pas de paramètres ou headers particuliers
Format de retour
Format attendu
Bloc de code |
---|
{ "lastname": "<Nom>"String, "firstname": "<Prénom>"String, "birthdate": "<Date de naissance>"String, "gender": "<Genre>"String, "affiliation": "<affiliation>"String, "photo": "data:image/jpeg;base64,xxxxxx"String, "ine": nullString, "errors": [String], "cards": { "studentCard": { "title": "<Titre1>"String, "subtitle": "<SubTitle>"String, "endDate": <YYYY>Number, "idNumber": "<number>"String, "csn": "<number>"String, "qrCode": { "type": "<type>"String, "value": "<value"String } }, "euStudentCard": { "title": "Carte Étudiant Européen"String, "subtitle": "European Student Card"String, "endDate": 2023Number, "idNumber": "12345678"String, "escn"ecsn": "12abc12a-1234-123a-ab12-001234567890"Number, "euid": "FR-123456789-123456"Number, "qrCode": { "type": "text"String, "value": "123456@ul"String } } }, "staffCard": { "title": "Carte Professionnelle"String, "subtitle": nullString, "endDate": 2023Number, "idNumber": "UL0000123456"String, "csn": "0400000000080"String, "qrCode": { "type": "url"String, "value": "https://univ-lorraine.fr" } } } String } } } } |
Les données à la racine seront les données communes à chaque carte :
lastname :
...
nom de l’utilisateur
firstname :
...
prénom de l’utilisateur
birthdate (nullable) : date de naissance de l’utilisateur
gender (nullable) : genre de l’utilisateur
affiliation : type d’utilisateur (student | staff)
photo : photo de l’utilisateur encodée en base64
ine (nullable) : code INE de l’utilisateur (dans le cas où l’utilisateur est un étudiant)
Toutes les cartes de l’utilisateur seront placées sous un attribut “cards”. Libre à l'établissement de fournir les données qu’il souhaite pour chaque carte. Il suffit simplement que le type de carte soit défini pour savoir quel SVG utiliser derrière, et qu’on retrouve les variables déclarées dans le SVG correspondant.
NB : pour chaque objet de type “card”, on retrouvera un attribut qrCode qui peut être nullable si l'établissement ne souhaite pas associer de QRCode à la carte affichée. Pour le moment on s’en tiendra à seulement 2 types de QRCode simple qui sont text et url. Si un établissement veut mettre en place d’autres types (SMS, mailto, vcard…), il devra adapter le code.
type : type d’action au scan du QRCode (text|url)
value : la valeur du QRCode à générer (texte pour un QR de type text ou une url pour un QR de type url)
...
Enfin, à chaque type de carte devra correspondre un template SVG. Par exemple : Pour l’Université de Lorraine, nous avons identifié 3 types de carte différents (soit 3 templates SVG) : studentCard, euStudentCard et staffCard.
Avertissement | ||
---|---|---|
| ||
On ne peut pas ajouter de données a afficher dans le SVG. |
Cas d'erreur
Codes erreurs
Liste des codes erreurs actuels concernant l’API des cartes dématérialisées :
NO_PHOTO : l’utilisateur ne peut pas disposer d’une carte car il n’a pas fourni de photo (à la scolarité de la formation pour un étudiant / à la RH pour les personnels)
NO_ACTIVE_CARD : l’utilisateur ne dispose pas d’une carte active à l’Université
UNPAID_FEES : l'étudiant (ou doctorant) ne voit pas sa carte dématérialisée s’afficher car il n’a pas encore payé les droits d’inscription pour l’année en cours
Remarque |
---|
Ces codes erreurs sont actuellement retournés avec un code HTTP 200 car il ne s’agit pas d’une erreur au sens propre de l’API mais plutôt d’une indication à l’utilisateur qu’il ne peut pas disposer d’une carte dématérialisée dans l’application mobile. |
Autres erreurs
user_not_found (code 404) : L’utilisateur dont le login est passé en paramètre lors de l’appel n’a pas pu être trouvé dans le SI de l’Université
Exemple :
Bloc de code |
---|
{ "error": "user_not_found_in_ldap", "error_description": "L'utilisateur avec pour uidNumber or login 'bidule' n'a pas pu être trouvé dans le LDAP ou est sursitaire" } |
...
Info |
---|
L’application catche donc 2 types d’erreur :
|
Exemple
Bloc de code |
---|
{
"lastname": "Didier",
"firstname": "Céline",
"gender": null,
"affiliation": "staff",
"ine": null,
"errors": [],
"photo": "data:image/jpeg;base64,/9j/4pleindecaracteres"
"cards": {
"staffCard": {
"title": "Carte Professionnelle",
"subtitle": null,
"endDate": "2024",
"idNumber": "UL0000123456",
"csn": "0A0A0A0A0A0A",
"qrCode": {
"type": "text",
"value": "00000@ul"
}
}
}
} |