Gestion des réservations¶
Obtenir la liste des réservations d’un utilisateur¶
La liste des réservations d’un utilisateur est accessible à l’adresse /api/bookings/ via la méthode HTTP GET.
Paramètres¶
| Nom | Description | Exemple |
| user_external_id | Identifiant unique de l’utilisateur (obligatoire). | {{form_user_nameid}} |
| agenda | Restreindre les réservations à un agenda. | Slug d’un agenda. |
| category | Restreindre les réservations à une catégorie d’agenda. | Slug d’une catégorie. |
| date_start | Filtrer les réservations selon leur date de début. | 2021-09-15 |
| date_end | Filtrer les réservations selon leur date de fin. | 2021-09-20 |
Exemple¶
GET /api/bookings/?user_external_id=xxx
{
"err": 0,
"data": [
{
"id": 4,
"in_waiting_list": false,
"user_was_present": true,
"user_absence_reason": "",
"extra_data": null
},
{
"id": 11,
"in_waiting_list": false,
"user_was_present": null,
"user_absence_reason": "",
"extra_data": null
}
]
}
Obtenir un fichier ics des réservations d’un utilisateur¶
Un fichier ics récapitulant les réservations d’un utilisateur est accessible à l’adresse /api/bookings/ics/ via la méthode HTTP GET.
Paramètres¶
| Nom | Description | Exemple |
| user_external_id | Identifiant unique de l’utilisateur (obligatoire). | {{form_user_nameid}} |
| agenda | Restreindre les réservations à un agenda. | Slug d’un agenda. |
Exemple¶
GET /api/bookings/ics/?user_external_id=xxx
Obtenir des informations sur une réservation¶
Les informations sur une réservation sont accessibles à l’adresse /api/booking/ID-DE-LA-RESERVATION/ via la méthode HTTP GET.
Exemple¶
GET /api/booking/4/
{
"err": 0,
"data": {
"booking_id": 4,
"in_waiting_list": false,
"user_was_present": true,
"user_absence_reason": "",
"extra_data": null
}
}
Erreur : réservation annulée¶
{
"err": 1,
"err_class": "booking is cancelled"
}
Mettre à jour les informations sur une réservation¶
Les informations sur une réservation sont modifiables à l’adresse /api/booking/ID-DE-LA-RESERVATION/ via la méthode HTTP PATCH.
Paramètres JSON, corps de la requête¶
| Nom | Description | Exemple |
| user_was_present | Information de pointage témoignant de la présence de l’utilisateur. | true |
| user_absence_reason | Motif d’absence | Identifiant (ou libellé) du motif d’absence à associer à la réservation |
Il est possible de passer n’importe quel paramètre en plus de ceux ci-dessus : ils seront enregistrés et apparaîtront dans la clé extra_data de l’API qui retourne les informations d’une réservation.
Exemple¶
PATCH /api/booking/4/
{
"err": 0,
"booking_id": 4,
}
Erreur : réservation annulée¶
{
"err": 1,
"err_class": "booking is cancelled"
}
Erreur : réservation en liste d’attente¶
{
"err": 3,
"err_class": "booking is in waiting list"
}
Erreur : l’évènement est marqué comme déjà pointé¶
{
"err": 5,
"err_class": "event is marked as checked"
}
Annuler une réservation¶
Il est possible d’annuler une réservation grâce à un appel à l’adresse /api/booking/ID-DE-LA-RESERVATION/cancel/ via la méthode HTTP POST.
Exemple¶
POST /api/booking/4/cancel/
{
"err": 0,
"booking_id": 4,
}
Erreur : réservation déjà annulée¶
{
"err": 1,
"err_class": "already cancelled"
}
Accepter une réservation¶
Il est possible de déplacer une réservation de la liste d’attente vers la liste principale grâce à un appel à l’adresse /api/booking/ID-DE-LA-RESERVATION/accept/ via la méthode HTTP POST.
Exemple¶
POST /api/booking/4/accept/
{
"err": 0,
"booking_id": 4,
"overbooked_places": 0
}
Erreur : réservation annulée¶
{
"err": 1,
"err_class": "booking is cancelled"
}
Erreur : la réservation n’est pas en liste d’attente¶
{
"err": 3,
"err_class": "booking is not in waiting list"
}
Suspendre une réservation¶
Inversement, il est possible de déplacer une réservation de la liste principale vers la liste d’attente grâce à un appel à l’adresse /api/booking/ID-DE-LA-RESERVATION/suspend/ via la méthode HTTP POST.
Exemple¶
POST /api/booking/4/accept/
{
"err": 0,
"booking_id": 4,
}
Erreur : réservation annulée¶
{
"err": 1,
"err_class": "booking is cancelled"
}
Erreur : la réservation est déjà en liste d’attente¶
{
"err": 3,
"err_class": "booking is already in waiting list"
}
Redimensionner une réservation¶
Il est possible de modifier le nombre de places prises par une réservation grâce à un appel à l’adresse /api/booking/ID-DE-LA-RESERVATION/resize/ via la méthode HTTP POST.
Paramètres JSON, corps de la requête¶
| Nom | Description | Exemple |
count |
Nombre de places. | 2 |
Exemple¶
POST /api/booking/4/resize/
{
"err": 0,
"booking_id": 4,
}
Erreur : réservation annulée¶
{
"err": 1,
"err_class": "booking is cancelled"
}
Erreur : évènement plein¶
{
"err": 3,
"err_class": "sold out"
}
Anonymiser une réservation¶
Il est possible d’anonymiser une réservation grâce à un appel à l’adresse /api/booking/ID-DE-LA-RESERVATION/anonymize/ via la méthode HTTP POST.
Exemple¶
POST /api/booking/4/anonymize/
{
"err": 0,
"booking_id": 4,
}
Supprimer une réservation¶
Il est possible de supprimer une réservation grâce à un appel à l’adresse /api/booking/ID-DE-LA-RESERVATION/ via la méthode HTTP DELETE.
Exemple¶
DELETE /api/booking/4/
{
"err": 0,
"booking_id": 4,
}
Erreur : réservation annulée¶
{
"err": 1,
"err_class": "booking is cancelled"
}
