L’application fournit une API qui permet aux établissements de lire ou de créer en masse certaines données de immerSup Il est possible de lire ou de créer des objets :
L’API est accessible à https://immersup.etab.fr/api/ (avec immersup.etab l’url de votre instance d’immerSup) Leswagger est accessible à cette adresse : https://immersup.etab.fr/api/schema/swagger-ui/#/
**Pour utiliser ces routes, il faut un token que le référent technique peut générer dans “Administration/Token”. **
Il existe des routes correspondantes respectivement aux usages cités ci-dessus :
Les méthodes GET permettent de lire les données, les méthodes POST permettent d’insérer des données.
Exemple de données pour intégrer un domaine
{
"label": "Arts, Lettres & Langues"
}
Exemple de données pour intégrer un sous-domaine. Le domaine avec un id = 3 doit exister
{
"training_domain": 3,
"label": "Test sous domaine"
}
Exemple de données pour intégrer une structure. L’établissement avec un id = 1 doit exister
{
"code": "TEST",
"label": "Structure Test",
"establishment": 1
}
Exemple de données pour intégrer une formation. Les sous-domaines avec id=11 et id = 12 doivent exister, de même pour la structure avec id=20
{
"label": "B.U.T. GEA - Gestion des entreprises et des administrations",
"training_subdomains": [
12,11
],
"structures": [
20
]
}
Exemple de données pour intégrer un cours. La formation avec un id=54 doit exister, de même pour la structure avec l’id=2. Les intervenants ne sont pas obligés d’exister déjà côté immersup pour les établissements avec SI.
{
"label": "Algorithmique et programmation",
"training": 54,
"structure": 2,
"published": true,
"emails": [
"intervenant1@unistra.fr","intervenant2@unistra.fr"
],
"speakers": [],
"url": ""
}
Pour les établissements sans SI ou les lycées, il faut d’abord créer les intervenants puis utiliser cette syntaxe avec les identifiants des intervenants
{
"label": "Algorithmique et programmation",
"training": 54,
"structure": 2,
"published": true,
"speakers": [25,4],
"url": ""
}
Exemple de données pour intégrer un créneau de cours. Il faut connaitre l’identifiant du type de cours pour le mettre dans course_type, l’identifiant du cours à mettre dans course et les identifiants de campus et batiment. face-to-face vaut toujours true pour un créneau de cours car le distanciel n’existe pas. Les identifiants des intervenants doivent être parmi les enseignants du cours.
{
"room": "Rdv devant le batiment",
"date": "2023-07-19",
"start_time": "10:00",
"end_time": "12:00",
"n_places": 15,
"additional_information": "Prendre de l'eau il fait chaud",
"published": true,
"face_to_face": true,
"course_type": 1,
"registration_limit_delay": 48,
"cancellation_limit_delay": 48,
"course": 170,
"campus": 1,
"building": 3,
"speakers": [
822
]
}
Exemple de données pour intégrer un créneau de visite. Il faut connaitre l’identifiant de la visite à mettre dans visit. face-to-face vaut toujours true pour un créneau de visite car le distanciel n’existe pas. Les identifiants des intervenants doivent être parmi les intervenants du cours.
{
"room": "dans la cours du lycée",
"date": "2023-07-19",
"start_time": "10:00",
"end_time": "12:00",
"n_places": 15`
"additional_information": "Avec de la bonne humeur",
"published": true,
"face_to_face": true,
"registration_limit_delay": 48,
"cancellation_limit_delay": 48,
"visit":1,
"speakers": [
790
]
}
Exemple de données pour intégrer un créneau d’évènement hors offre. Il faut connaitre l’identifiant de l’évènement à mettre dans event. face-to-face vaut true pour un créneau en présentiel et false pour un créneau en distanciel. url est obligatoire si le créneau est en distanciel, sinon il faut mettre campus, batiment et salle. Les identifiants des intervenants doivent être parmi les intervenants du cours.
{
"date": "2023-07-19",
"start_time": "14:00",
"end_time": "16:00",
"n_places": 15,
"url":"https://unistra.fr",
"additional_information": "Avec de la bonne humeur",
"published": true,
"face_to_face": false,
"registration_limit_delay": 48,
"cancellation_limit_delay": 48,
"event":1,
"speakers": [
790
]
}
{
"room":"devant le batiment",
"date": "2023-07-15",
"start_time": "14:00",
"end_time": "16:00",
"n_places": 15,
"additional_information": "Avec de la bonne humeur",
"published": true,
"face_to_face": true,
"registration_limit_delay": 48,
"cancellation_limit_delay": 48,
"event":1,
"campus": 1,
"building": 3,
"speakers": [
790
]
}
Exemple de données pour intégrer un intervenant. Les intervenants n’ont besoin d’être créés que pour les lycées ou les établissemnts sans ldap. Il faut connaitre l’identifiant de l’établissement ou du lycée.
{
"last_name": "Dupont",
"first_name": "Daniel",
"email": "daniel.dupont@etab.fr",
"establishment": 4,
"is_active": true
}
{
"last_name": "Dupont",
"first_name": "Daniel",
"email": "daniel.dupont@lycee.fr",
"highscool": 4,
"is_active": true
}
Exemple de données pour intégrer un lycée. with_convention détermine si le lycée est conventionné ou non. Si oui les adtes de convention sont obligatoire pour un lycée en service (active = true). Si le lycée partage son offre en immersion il faut mettre postbac_immersion= true.
{
"label": "Lycée Paul Valery",
"country": "FR",
"address": "rue du test",
"address2": "",
"address3": "",
"department": "67",
"city": "Strasbourg",
"zip_code": "67100",
"phone_number": "0688888888",
"fax": "",
"email": "lycee@ac-strasbourg.fr",
"head_teacher_name": "M. Dupont",
"convention_start_date": "2023-07-12",
"convention_end_date": "2025-08-31",
"postbac_immersion": false,
"mailing_list": "",
"badge_html_color": "#33ff36",
"active": true,
"with_convention": true
}
{
"label": "Lycée Paul Valery 2",
"country": "FR",
"address": "rue du test",
"address2": "",
"address3": "",
"department": "67",
"city": "Strasbourg",
"zip_code": "67100",
"phone_number": "0688888888",
"fax": "",
"email": "lycee2@ac-strasbourg.fr",
"head_teacher_name": "M. Dupont",
"postbac_immersion": false,
"mailing_list": "",
"badge_html_color": "#33ff36",
"active": true,
"with_convention": false
}
Exemple de données pour intégrer un campus. L’établissement avec un id = 1 doit exister
{
"label": "Campus de Haguenau",
"active": true,
"department": "67",
"city": "Haguenau",
"zip_code": "67500",
"establishment": 1
}
Exemple de données pour intégrer un bâtiment. Le campus avec un id = 2 doit exister
{
"label": "Mon nouveau batiment",
"url": "",
"active": true,
"campus": 2
}