La libre réservation
La libre réservation est un concept destiné aux organisations multi club. Cela permet de définir des accords entre clubs pour que les membres d'un club A puissent réserver dans un club B.
Quels impacts techniquement ?
Sans la libre réservation
Différents endpoints permettent de gérer les plannings et prises de réservation.
/events
/attendees
/studios
/coaches
/activities
/showcase_activities
/clubs
Limitation technique
Attention à l'identification du contact
La libre réservation n'est possible qu'en identifiant le contact qui réserve (pour permettre à l'API de savoir à quel(s) club(s) le contact a accès).
Il est donc nécéssaire d'utiliser un mode d'authentification différent de client_credentials
pour chacuns des appels suivants.
Le meilleur compromis étant d'utiliser http://contactclientcredentials
Avec la libre réservation
La mécanique est strictement identique, les endpoints vont changer ...
/events
devient/club_network/class_events
documentation ci-après dans les annexes/attendees
devient/club_network/attendees
https://doc.resamania.com/api/booking#operation/club_network_getAttendeeCollection/studios
devient/club_network/studios
https://doc.resamania.com/api/club#operation/club_network_getStudioCollection/coaches
devient/club_network/coaches
https://doc.resamania.com/api/club#operation/club_network_get_collectionCoachCollection/activities
devient/club_network/activities
https://doc.resamania.com/api/booking#operation/club_network_getActivityCollection/showcase_activities
devient/club_network/showcase_activities
https://doc.resamania.com/api/booking#operation/club_network_getShowcaseActivityCollection/clubs
devient/club_network/clubs/
https://doc.resamania.com/api/club#operation/club_network_getClubCollection
Libre résa ou pas ? Comment savoir ?
Les deux modes coexistant, il faut déterminer quel set de endpoints utiliser. Le caractère de réservation libre est lié au club. Cela se détermine donc en regardant la réponse du GET /clubs
ou GET /clubs/{id}
. La réponse d'un club comporte le paramètre sharingBookingClubs
à interpréter ainsi : Si NULL ou tableau vide, nous sommes en mode SANS libre réservation Si NON NULL, il s'agit d'un club AVEC libre réservation
Avec quels autres clubs partage t'on la réservation ?
Au regard de ce que contient le paramètre sharingBookingClubs
des clubs on peut penser que son contenu nous donne la liste des clubs. C'est vrai mais cela donne des clubs et des groupes de clubs. Cela demanderait donc de l'interprétation. Un point d'API fait cette interprétation pour vous et vous retournera uniquement la liste des clubs unitaires il s'agit du endpoint GET /club_network_domain/sharing_booking
auquel il faudra passer l'iri du club source (le même que celui passé dans le header ... qui n'est pas utile sur ce endpoint).
Annexes techniques
Différence entre /events
et /class_events
Ces 2 endpoints permettent effectivement d'interroger le planning de cours avec des capacités de filtrages distinctes. Le format de réponse, quant à lui, est strictement identique ! Seul le endpoint /class_events
a été porté vers la libre réservation. Il est donc important de connaître les différences de filtrage ci après détaillées dans son extrait de documentation. A noter qu'il est également possible de basculer tout le fonctionnement de la récupération des plannings sur le /class_events avec ou sans libre réservation.
Extrait de la documentation API GET /{client_token}/club_network_domain/sharing_booking
La documentation sera prochainement disponible sur le portail développeur en ligne, en attendant voici ce qu'il faut savoir.
PATH PARAMETERS
Paramètre (📌 = obligatoire) | Description |
---|---|
client_token 📌 | string |
QUERY PARAMETERS
Paramètre (📌 = obligatoire) | Description |
---|---|
clubId 📌 | Club IRI (example: /myclub/clubs/1234) |
page | integer The collection page number |
itemsPerPage | integer The number of items per page (30 by default) |