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) Le swagger 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.
Il faut mettre le paramètre allow_individual_registrations à true
{
"room": "Rdv devant le batiment",
"date": "2024-07-30",
"start_time": "08:00:00",
"end_time": "12:00:00",
"n_places": 25,
"additional_information": "Prendre de l'eau il fait chaud",
"published": true,
"registration_limit_delay": 24,
"cancellation_limit_delay": 45,
"allow_individual_registrations": true,
"period": 13,
"course": 56,
"course_type": 4,
"campus": 1,
"building": 2,
"speakers": [
847
]
}
Il faut mettre le paramètre allow_individual_registrations à false, allow_group_registrations à true. Le paramètre group_mode vaut 0 pour un seul groupe, 1 pour un nombre de places, le paramètre public_group vaut true pour un groupe public false pour un groupe privé.
{
"room": "Rdv devant le batiment",
"date": "2024-07-31",
"start_time": "09:00:00",
"end_time": "10:00:00",
"n_places": 10,
"n_group_places": 25,
"group_mode": 0,
"public_group": false,
"additional_information": "Prendre de l'eau il fait chaud",
"allow_individual_registrations": true,
"allow_group_registrations": true,
"published": true,
"registration_limit_delay": 24,
"cancellation_limit_delay": 45,
"period": 13,
"course": 56,
"course_type": 4,
"campus": 1,
"building": 2,
"speakers": [
847
]
}
Il faut mettre le paramètre allow_individual_registrations à true et allow_group_registrations à true également
{
"room": "Rdv devant le batiment",
"date": "2024-07-31",
"start_time": "09:00:00",
"end_time": "10:00:00",
"n_places": 10,
"n_group_places": 25,
"group_mode": 0,
"public_group": false,
"additional_information": "Prendre de l'eau il fait chaud",
"allow_individual_registrations": true,
"allow_group_registrations": true,
"published": true,
"registration_limit_delay": 24,
"cancellation_limit_delay": 45,
"period": 13,
"course": 56,
"course_type": 4,
"campus": 1,
"building": 2,
"speakers": [
847
]
}
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. place vaut 0 pour un créneau en présentiel et 1 pour un créneau en distanciel et 2 pour un créneau hors établissement. url est obligatoire si le créneau est en distanciel. Il faut mettre campus, batiment et salle pour un créneau en présentiel dans un établissement du supérieur. Les identifiants des intervenants doivent être parmi les intervenants du cours. On peut combiner les créneaux d’évènements présentiel, distanciel et Hors établissement avec des créneaux ouverts aux immersions individuelles et/ou en cohortes.
{
"room":"devant le batiment",
"date": "2024-07-31",
"start_time": "13:00",
"end_time": "14:00",
"n_places": 15,
"additional_information": "Avec de la bonne humeur",
"published": true,
"place":1,
"registration_limit_delay": 48,
"cancellation_limit_delay": 48,
"allow_individual_registrations": true,
"event":45,
"period":13,
"url":"https://unistra.fr",
"speakers": [
847
]
}
{
"room": "Rdv devant le batiment",
"date": "2024-07-30",
"start_time": "08:00:00",
"end_time": "12:00:00",
"n_places": 25,
"additional_information": "Prendre de l'eau il fait chaud",
"place":0,
"published": true,
"registration_limit_delay": 24,
"cancellation_limit_delay": 45,
"allow_individual_registrations": true,
"period": 13,
"course": 56,
"course_type": 4,
"campus": 1,
"building": 2,
"speakers": [
847
]
}
{
"room":"devant le batiment",
"date": "2024-07-31",
"start_time": "08:00",
"end_time": "09:00",
"n_places": 15,
"additional_information": "Avec de la bonne humeur",
"published": true,
"place":2,
"registration_limit_delay": 48,
"cancellation_limit_delay": 48,
"allow_individual_registrations": true,
"event":45,
"period":13,
"speakers": [
847
]
}
Il faut mettre le paramètre allow_individual_registrations à false, allow_group_registrations à true. Le paramètre group_mode vaut 0 pour un seul groupe, 1 pour un nombre de places, le paramètre public_group vaut true pour un groupe public false pour un groupe privé.
{
"room":"dans le lycée choisissant le créneau",
"date": "2024-07-31",
"start_time": "08:00",
"end_time": "12:00",
"n_group_places": 25,
"group_mode": 0,
"public_group": true,
"additional_information": "Avec de la bonne humeur",
"published": true,
"place":2,
"registration_limit_delay": 48,
"cancellation_limit_delay": 48,
"allow_individual_registrations": false,
"allow_group_registrations": true,
"event":45,
"period":13,
"speakers": [
847
]
}
Il faut mettre le paramètre allow_individual_registrations à true, allow_group_registrations à true. Le paramètre group_mode vaut 0 pour un seul groupe, 1 pour un nombre de places, le paramètre public_group vaut true pour un groupe public false pour un groupe privé.
{
"room":"devant le batiment",
"date": "2024-07-31",
"start_time": "14:00",
"end_time": "16:00",
"n_places": 15,
"n_group_places": 25,
"group_mode": 1,
"public_group": true,
"additional_information": "Avec de la bonne humeur",
"published": true,
"allow_individual_registrations": true,
"allow_group_registrations": true,
"place":0,
"registration_limit_delay": 48,
"cancellation_limit_delay": 48,
"event":45,
"period":13,
"campus": 1,
"building": 3,
"speakers": [
847
]
}
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 dates 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. Il faut aussi définir si le lycée utilise la fédération Educonnect avec le paramètre uses_student_federation, si on met ce paramètre à true alors au moins un code UAI est obligatoire. Pour la fédération Agent il faut utiliser uses_agent_federation. Le paramètre allow_individual_immersions sert à définir si on ouvre les immersions individuelels pour cet établissement du secondaire
{
"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,
"uses_student_federation": true,
"uses_agent_federation": false,
"allow_individual_immersions": true,
"uai_codes":["0573429T"]
}
{
"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": "lycee2@ac-strasbourg.fr",
"head_teacher_name": "M. Dupont",
"postbac_immersion": false,
"mailing_list": "",
"badge_html_color": "#33ff36",
"active": true,
"with_convention": false,
"uses_student_federation": true,
"uses_agent_federation": true,
"allow_individual_immersions": true,
"uai_codes":["0573429T"]
}
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
}