Introduction à l’API chrono
Lister les agendas
La liste des agendas est accessible à l’adresse /api/agenda/ via la méthode HTTP GET.
Exemple
GET /api/agenda/ { "data": [ { "minimal_booking_delay": 1, "kind": "events", "text": "Un agenda", "slug": "un-agenda", "api": { "datetimes_url": "https://agendas.demarches.publik.love/api/agenda/un-agenda/datetimes/", "fillslots_url": "https://agendas.demarches.publik.love/api/agenda/un-agenda/fillslots/" }, "id": "un-agenda", "maximal_booking_delay": 360 }, { "minimal_booking_delay": 1, "kind": "events", "text": "Un autre agenda", "slug": "un-autre-agenda", "api": { "datetimes_url": "https://agendas.demarches.publik.love/api/agenda/un-autre-agenda/datetimes/" "fillslots_url": "https://agendas.demarches.publik.love/api/agenda/un-autre-agenda/fillslots/" }, "id": "un-autre-agenda", "maximal_booking_delay": 45 } ] }
Obtenir des informations sur un agenda
Les informations de paramétrage d’un agenda sont accessibles à l’adresse /api/agenda/IDENTIFIANT-DE-LAGENDA/ via la méthode GET.
Exemple
GET /api/agenda/agenda-evenement/ { "data": { "api": { "datetimes_url": "https://chrono.dev.publik.love/api/agenda/agenda-evenement/datetimes/", "fillslots_url": "https://chrono.dev.publik.love/api/agenda/agenda-evenement/fillslots/" }, "id": "agenda-evenement", "kind": "events", "maximal_booking_delay": 56, "minimal_booking_delay": 1, "slug": "agenda-evenement", "text": "Agenda Evenement" } }
Agenda évènement : obtenir l’ensemble des évènements
La liste des évènements d’un agenda est accessible à l’adresse /api/agenda/IDENTIFIANT-DE-LAGENDA/datetimes/ via la méthode GET.
Exemple
GET /api/agenda/agenda-evenement/datetimes/ { "data": [ { "api": { "fillslot_url": "https://chrono.dev.publik.love/api/agenda/agenda-evenement/fillslot/44/", "status_url": "https://chrono.dev.publik.love/api/agenda/agenda-evenement/status/44/" }, "datetime": "2020-06-11 10:00:00", "description": "", "disabled": true, "id": 44, "pricing": null, "slug": "even1", "text": "even 1", "url": null }, { "api": { "fillslot_url": "https://chrono.dev.publik.love/api/agenda/agenda-evenement/fillslot/45/", "status_url": "https://chrono.dev.publik.love/api/agenda/agenda-evenement/status/45/" }, "datetime": "2020-06-18 00:00:00", "description": "", "disabled": false, "id": 45, "pricing": null, "slug": "even2", "text": "even2", "url": null } ] }
Agenda évènement : obtenir des informations sur un évènement
Les informations sur un évènement sont accessibles à l’adresse /api/agenda/IDENTIFIANT-DE-LAGENDA/status/IDENTIFIANT-DE-LEVENEMENT/ via la méthode GET.
Exemple
GET /api/agenda/agenda-evenement/status/even1/ { "err": 0, "places": { "available": 3, "full": false, "has_waiting_list": false, "reserved": 0, "total": 3 } }
Agenda rendez-vous : obtenir les types de rendez-vous
Les types de rendez-vous d'un agenda sont accessibles à l’adresse /api/agenda/IDENTIFIANT-DE-LAGENDA/meetings/ via la méthode GET.
Exemple
GET /api/agenda/rdvs-autre/meetings/ { "data": [ { "api": { "datetimes_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/meetings/base/datetimes/" }, "duration": 30, "id": "base", "text": "base" }, { "api": { "datetimes_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/meetings/court/datetimes/" }, "duration": 15, "id": "court", "text": "court" } ] }
Agenda rendez-vous : obtenir les guichets
Les guichets d'un agenda sont accessibles à l’adresse /api/agenda/IDENTIFIANT-DE-LAGENDA/desks/ via la méthode GET.
Exemple
GET /api/agenda/rdvs-autre/desks/ { "data": [ { "id": "aa", "text": "aa" }, { "id": "bb", "text": "bb" }, { "id": "guichet-1", "text": "Guichet 1" } ] }
Agenda rendez-vous : obtenir les créneaux disponibles
La liste des évènements d'un agenda est accessible à l’adresse /api/agenda/IDENTIFIANT-DE-LAGENDA/meetings/IDENTIFIANT-DU-TYPE-DE-RDV/datetimes/ via la méthode GET.
Exemple
GET /api/agenda/rdvs-autre/meetings/base/datetimes/ { "data": [ { "api": { "fillslot_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/fillslot/19:2020-08-05-1500/" }, "datetime": "2020-08-05 15:00:00", "disabled": false, "id": "19:2020-08-05-1500", "text": "5 août 2020 15:00" }, { "api": { "fillslot_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/fillslot/19:2020-08-05-1515/" }, "datetime": "2020-08-05 15:15:00", "disabled": false, "id": "19:2020-08-05-1515", "text": "5 août 2020 15:15" }, { "api": { "fillslot_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/fillslot/19:2020-08-05-1530/" }, "datetime": "2020-08-05 15:30:00", "disabled": false, "id": "19:2020-08-05-1530", "text": "5 août 2020 15:30" } ] }
Poser une réservation
Via la méthode POST, sur l’adresse mentionnée dans le champ fillslot_url obtenu en demandant la liste des évèments pour agenda de type évènement ou la liste des crénaux disponibles pour un agenda de type rendez-vous.
Paramètres JSON, corps de la requête
Nom | Description | Obligatoire | Exemple |
---|---|---|---|
backoffice_url | URL de la démarche effectuant la réservation | Non | {{form_url_backoffice|safe}} |
cancel_callback_url | URL à appeler lors d’une annulation |
Non |
|
cancel_booking_id | Identifiant de réservation à annuler | Non | 45 |
count | Nombre de places à réserver | Non | 2 |
force_waiting_list | Forcer le passage en liste d'attente | Non | true |
label | Texte arbitraire pour l'affichage en backoffice | Non | {{form_name|safe}} |
user_display_label | Texte pour affichage dans export ics | Non | {{form_name|safe}} |
user_external_id | Identifiant de l’utilisateur | Non | {{form_user_nameid}} |
user_name | Nom de l’utilisateur pour affichage backoffice | Non | {{form_user_display_name}} |
Exemple
POST /api/agenda/rdv-pref/fillslot/18:2020-06-16-1000/ { "agenda": { "label": "rdv pref", "slug": "rdv-pref" }, "api": { "cancel_url": "https://chrono.dev.publik.love/api/booking/50/cancel/", "ics_url": "https://chrono.dev.publik.love/api/booking/50/ics/", "suspend_url": "https://chrono.dev.publik.love/api/booking/50/suspend/" }, "booking_id": 50, "datetime": "2020-06-16 10:00:00", "desk": { "label": "ds", "slug": "ds" }, "duration": 30, "end_datetime": "2020-06-16 10:30:00", "err": 0, "in_waiting_list": false, "resources": [] }
Dernière mise à jour le 16 février 2021 14:14 — Éditer