Skip to content

How to use dabba api

Janssens Gaëtan edited this page Dec 14, 2021 · 16 revisions

Tuto

Voici comment utiliser l'API Dabba pour réaliser des opérations.

Notes préamables

  • Pour commencer il vous faut des identifiants, un CLIENT_ID et CLIENT_SECRET, qui sont générée dans l'admin php.
  • Sans se connecter avec un user (Oauth), seul la liste des restaurants est accessible.
  • Actuellement Dabba n'utilise qu'un seul type de contenant, mais cette API permet d'en prendre en charge plusieurs.

Créer un utilisateur :

faire un POST sur /api/users avec
{ "email": "string", "password": "string", ... } Ensuite l'utilisateur doit valider son nouveau compte en cliquant sur un lien reçu par e-mail.

Se connecter en Oauth / Obtenir un token

faire un POST sur /api/accessToken Avec le Header Content-Type : application/x-www-form-urlencoded et le formulaire : grant-type : password scope : * client_id : CLIENT_ID client_secret : CLIENT_SECRET username : user%40email.fr password : *********

ce qui retourne un access_token valable 1h (3600 secondes) ainsi qu'un refresh_token valable 1 mois.

Obtenir les données utilisateur

faire un GET (authentifié) sur /api/users/current

  • wallet correspond au montant de sa cagnotte.
  • containers la liste des ses contenants actuels
  • paymentTokens la liste des cartes bancaires enregistrées pour payer la cagnottes

Faire un échange, un retour ou un retrait

faire un POST (authentifié) sur /api/trades avec { "items": [ { "type": "DEPOSIT", "container_id": 1, "quantity": 3 } ], "code_from_qr": "string" }

  • Type peut être : "DEPOSIT" ou "WITHDRAW". un échange correspond au dépot/retrait d'une même quantité.
  • code_from_qr correspond à un code restaurant unique et secret qu'il faudra connaitre (probablement appel API spécifique avec un user dédié) Cette appel retournera une erreur si l'opération est impossible (manque de stock, manque de cagnotte, etc...)

Créditer sa cagnotte

faire un POST (authentifié) sur /api/orders avec le montant à créditer { "amount": 16 } ceci renvoi une commande (order). a. sans avoir de carte de crédit enregistrée dans le compte -> un lien pour payer se trouve dans l'attribut pay_url Une fois le paiement fait, la cagnotte sera créditée automatiquement b. avec un carte pre-enregistrée faire un POST (authentifié) sur /api/orders/{id}/pay avec le token à utiliser { "token_id": "TO_BE_DEFINED_123456789abcdefghi" }

Clone this wiki locally