Skip to content

Travailler avec des chaînes de clubs

Les chaînes de clubs sont des enseignes regroupant plusieurs clubs physiques tels que des franchises et/ou des clubs en nom propre. Resamania est parfaitement adapté à la gestion de ces enseignes.

Avant de commencer

Chez Resamania nous distinguons 2 organisations :

  • Les enseignes simples, dans lesquelles les clubs partagent tout le savoir. Il s'agit principalement d'enseignes de clubs en nom propre.
  • Les enseignes avec un réseau, dans lesquelles le partage de la donnée est contrôlé et restreint. Il s'agit là souvent d'enseignes regroupant plusieurs sociétés.

Travailler avec des enseignes simples n'impose aucune contrainte au développement. Il s'agit du fonctionnement standard de Resamania et tous les exemples et la documentation API sont utilisables tels que décrits.

Déterminer l'organisation de mon enseigne

Une enseigne décide, lors de son parcours d'accueil chez Resamania, de mettre en place ou non un réseau.

Comprendre les réseaux

Resamania propose un mécanisme simple pour imposer du contrôle. Nos réseaux sont basés sur des arbres et des noeuds à l'image de l'organisation de l'enseigne.

Pour imposer du contrôle il suffit de répondre à 2 questions :

  • Où suis-je ?
  • Pour qui est-ce que j'agis ?

Par exemple, je suis à la maison mère et j'agis pour le club de Paris 18ème.

La première réponse détermine la donnée à laquelle vous pouvez accéder. La deuxième réponse caractérise les actions que vous voulez entreprendre comme faire une vente, ajouter un mandat, s'inscrire à un cours...

Développer pour une enseigne en réseau ?

Le contrôle que souhaite imposer le réseau peut avoir des répercussions sur votre développement. En effet lors de chaque requête, l'API doit répondre aux 2 questions précédentes, où êtes vous et pour qui agissez vous ?

Il existe alors 2 cas distincts :

  • Votre application utilise une authentification nominative (méthodes code et password) pour identifier les membres des clubs. L'API sait répondre d'elle même aux questions et vous n'avez aucune contrainte dans son utilisation.
  • Votre application utilise une authentification anonyme (méthode client credentials). Vous devrez fournir les réponses aux questions.

Connaître le réseau

Avant de pouvoir répondre aux questions, intéressons nous au réseau. Une fois authentifié, vous avez accès à tout ou partie du réseau.

Faire un appel GET à l'API Resamania 2 comme suit :

https://{api_base_url}/{client_token}/network_nodes

Se référer au tableau ci dessous pour les paramètres de la requête

paramètredescription
api_base_urlL'url de l'API que vous souhaitez utiliser. Celle-ci varie selon les environnements d'intégration et de production
client_tokenChaque enseigne possède son identifiant Resamania appelé client_token

L'API vous retourne en réponse les informations suivantes :

json5
[  
    {
        "@id":"/{client_token}/network_nodes/1",
        "@type":"NetworkNode",
        "id":4,
        "name":"Maison mère",
        "alias":null,
        "type":"group",
        "clubId": null,
        "children":[
            {
                "@id":"/{client_token}/network_nodes/4",
                "@type":"NetworkNode",
                "id":4,
                "name":"Club Paris 18eme",
                "alias":null,
                "type":"club",
                "clubId":"/{client_token}/clubs/48",
                "children":[  

                ]
            },
            {  
                "@id":"/{client_token}/network_nodes/60",
                "@type":"NetworkNode",
                "id":60,
                "name":"Club Paris 16eme",
                "alias":null,
                "type":"club",
                "clubId":"/{client_token}/clubs/183",
                "children":[  
                ]
            }
        ]
    }
]
paramètredescription
@idIdentifiant textuel du noeud aussi appelé IRI
idIdentifiant numérique du noeud du réseau
nameLe nom du noeud du réseau. Celui-ci est donné lors de la création du réseau.
aliasInterne à Resamania
typeIl existe différents types de noeud, group, mixed, franchise et club
clubIdIdentifiant du club associé au noeud. Seulement renseigné pour les noeuds de type club
childrenListe des noeuds enfants, ce qui définit l'arbre du réseau.

Répondre à la question : "Où suis-je ?"

Vous devez littéralement vous positionner sur un noeud du réseau. Cette position déterminera le panel de données accessibles.

A noter, vous ne pouvez vous positionner que sur des noeuds de type group et club.

Une fois le noeud déterminé, la valeur attendue est son identifiant textuel :

/{client_token}/network_nodes/{id}

Répondre à la question : "Pour qui j'agis ?"

Toutes les actions entreprises le sont pour le compte d'un club, vous devrez donc founir un identifiant textuel de club.

/{client_token}/clubs/{id}

Présenter les réponses à l'API Resamania

Tout appel à l'API devra être accompagné de ces réponses. Ajoutez pour cela 2 headers X-User-Network-Node-Id (où je suis ?) et X-User-Club-Id (Pour qui j'agis ?). Voici un exemple de ce à quoi ressemble un appel en cURL :

bash
curl -H 'X-User-Network-Node-Id: /{client_token}/network_nodes/{id}'
     -H 'X-User-Club-Id: /{client_token}/clubs/{id}'
     https://{api_base_url}

Retours d'erreurs communs de l'API Resamania

403 : accès refusé

Si l'API ne sait déterminer les réponses liées aux réseau, que les headers sont absents et/ou que les positionnements sont illicites, l'API Resamania vous retournera un code HTTP 403 : accès refusé