Documentation en ligne

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_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 10 juin 2020 17:15 — Éditer