esup-multi

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Connecteur appelé par le module cards card. Il doit retourner la liste des cartes dématérialisées à afficher pour un utilisateur donnéles données de l'utilisateur permettant de lui afficher sa carte de l'établissement de manière dématérialisée.

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
  • , soit 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
languagejson
{
	"lastname": Stringstring,
  	"firstname": Stringstring,
	"birthdate": String,
	"gender": String,
	"affiliationbirthdate": Stringstring,
	"photo": String,
	"ine": String,
	"errorsgender": [String]string,
	"cards": {
		"studentCard": {
			"title": Stringstring,
            	"subtitle": Stringstring,
            "endDate	"ine": Numberstring,
            "idNumber": String,
            	"csn": String,
            "qrCode": {string,
            	"typephoto": Stringstring,
            	"valueaffiliation": Stringstring,
            }
		},
		"euStudentCardidNumber": {
            "title": Stringstring,
            "subtitle": String,
            	"endDate": Numbernumber,
            "idNumber": String, 
            "ecsn": Number,
            "euid": Number,
            "	"qrCode": {
            	"type": Stringstring,
            	"value": Stringstring
            }
        },
        "staffCard": {
            "title": String,
            "subtitle": String,
            "endDate": Number,
            "idNumber": String,
            "csn": String,
            "qrCode": {
            	"type": String,
            	"value": String
            }
        }
	}	
}

...

 	},
  	"errors": []
}
  • lastname : nom de l’utilisateur

  • firstname : prénom de l’utilisateur

  • birthdate (nullable) : date de naissance de
  • l’utilisateur
  • l'utilisateur
  • gender (nullable) : genre de l’utilisateur

  • affiliation : type d’utilisateur (student | staff)

  • photo : photo de l’utilisateur encodée en base64
  • titlte : titre du document
  • subtitle (nullable) : complément du titre
  • ine (nullable) : code INE de l’utilisateur (dans le cas où l’utilisateur est un étudiant)
  • csn (nullable)

...

  • : numéro de série de la carte
  • photo : photo de l’utilisateur encodée en base64
  • affiliation : type d’utilisateur (student | staff) - permet d'identifier le template SVG à utiliser

  • idNumber : identifiant de l'utilisateur au sein de l'établissement

  • endDate : année de fin de validation de l'inscription en cours

  • qrCode (nullable) : 
    • 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 staffCardNB : 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.

Avertissement
titleLimite

On ne peut pour le moment 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 :

...

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
languagejson
{
    "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 capte donc 2 types d’erreur :

  • celles dont le code HTTP n’est pas 200

  • celles pour lesquelles l’attribut errors est renseigné dans la réponse

Exemple

Bloc de code
languagejson
{
    	"lastname": "DidierDupont",
    "firstname": "CélineAlice",
    "gender": null,
    "birthdate": "01/01/2000",
    "affiliation": "staff",
    "ine": null,
    "errors": [],
    "photo": "data:image/jpeg;base64,/9j/4pleindecaracteres4AA..."
	"cards": {
        "staffCardine": {null,
            "title": "Carte Professionnelleprofessionnelle",
            "subtitle": null"Enseignant chercheur",
            "endDatecsn": "2024"null,
            "idNumberendDate": "UL00001234562026",
            "csn"idNumber": "0A0A0A0A0A0AAA1234567890",
               "qrCode": {
                "type": "text",
                "value": "00000@ul"
            }
        }
    }"errors": []
}