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

  • l'attribut wallet correspond au montant de sa cagnotte.
  • l'attribut containers la liste des ses contenants actuels
  • l'attribut 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". (NB: un échange correspond au dépôt/retrait d'une même quantité.)
  • code_from_qr correspond à un code restaurant unique et secret qu'il faudra connaitre (probablement via appel API spécifique avec un user dédié, à définir)

Ce POST 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