NAV

Introduction

Read the documentation in English

Autorisation

Le système d'autorisation est de type OAuth2.

GET /apps HTTP/1.1

Authorization: Bearer QjBBQjM5MEMtQUREOS00NzM0LUJBQUYtRDQ2NjlBRkE3Q0RBX2Zha2U

Chaque requête doit être authentifié avec un jeton d'accès (à par les requêtes d'autorisation). Il doit être obligatoirement indiqué dans l'en-tête Authorization.

La première fois, les jetons sont récupérable avec le nom d'utilisateur et le mot de passe.

Les fois suivantes, les jetons peuvent être rafraîchis avec un jeton de rafraîchissement.

Type de jeton Description Durée de validité
access_token Pour authentifier chaque requête 1 heure
refresh_token Pour rafraîchir access_token 30 jours

Récuperer les jetons

La récupération des jetons se font via un POST avec les identifiants de connexion de l'utilisateur, et les identifiants de votre application.

POST /oauth/v2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

client_id=id_application&
client_secret=secret&
grant_type=password
username=utilsateur%40example.org&
password=mot_de_passe

Requête

POST /oauth/v2/token

Les paramètres doivent être encodés en Form URL Encoded dans le corps de la requête.

Paramètre Description
client_id Identifiant d'application OAuth2
client_secret Clé secrète OAuth2
grant_type Doit être password
username Adresse email de l'utilisateur
password Mot de passe de l'utilisateur
HTTP/1.1 200 OK
Content-Type: application/json

{
  "access_token": "QjBBQjM5MEMtQUREOS00NzM0LUJBQUYtRDQ2NjlBRkE3Q0RBX2Zha2U",
  "refresh_token": "NDhFNjU5MkEtMTg0RC00REM4LTg2NjUtMEFEQjgyMjFDMUJGX2Zha2U",
  "expires_in": 3600,
  "token_type": "bearer",
  "scope": "user"
}

Réponse

Si les identifiants de connexion sont corrects, l'API répondre avec un code 200 OK et les jetons.

La réponse est encodé en JSON.

Paramètre Description
access_token Jeton d'accès à utiliser dans Authorization
refresh_token Jeton à conserver pour le rafraîchissement
expires_in Temps en secondes de la validité du jeton d'accès
token_type Toujours “bearer”, non utilisé
scope Non utilisé

Rafraîchir les jetons

Le rafraîchissement des jetons est très similaire à la première requête, seul le grant_type change ainsi que les paramètres d'identification.

POST /oauth/v2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

client_id=id_application&
client_secret=secret&
grant_type=refresh_token
refresh_token=NDhFNjU5MkEtMTg0RC00REM4LTg2NjUtMEFEQjgyMjFDMUJGX2Zha2U

Requête

POST /oauth/v2/token

Paramètre Description
client_id Identifiant d'application OAuth2
client_secret Clé secrète OAuth2
grant_type Doit être refresh_token
refresh_token Jeton de rafraîchissement
HTTP/1.1 200 OK
Content-Type: application/json

{
  "access_token": "MzBGMTFEN0MtQ0MzNy00OUZFLUFEN0ItMjBDRTZCNUZGQzNGX2Zha2U",
  "refresh_token": "ODg0QkQ3MjMtQzkzMi00N0Y2LUFFMjAtNkE1MEFFOEM4MkQ1X2Zha2U",
  "expires_in": 3600,
  "token_type": "bearer",
  "scope": "user"
}

Réponse

Si le jeton est valide, l'API répondra de la même manière que pour les demandes de première connexion.

Les 2 jetons (access_token et refresh_token) sont changés et leurs durées de validité sont prolongées.

La réponse est encodé en JSON.

Paramètre Description
access_token Jeton d'accès à utiliser dans Authorization
refresh_token Jeton à conserver pour le rafraîchissement
expires_in Temps en secondes de la validité du jeton d'accès
token_type Toujours “bearer”, non utilisé
scope Non utilisé

Gestion de la version

L'API est versionnée, la documentation ne concerne uniquement la dernière version, actuellement il s'agit de la version 1.1.

GET /apps HTTP/1.1
X-Accept-Version: v1.1

Vertical métier

Chaque utilisateur a accès à une ou plusieurs instances.

Les APIs sur les structures, fiches, listes et tâches nécessite d'être préfixé du nom court du vertical choisi (short).

Lister les instances

La liste des instances accessible par l'utilisateur sont accessible via l'API /apps.

GET /apps HTTP/1.1

Requête

GET /apps

Aucun paramètre.

HTTP/1.1 200 OK
Content-Type: application/json

[
  {
    "name": "Test",
    "short": "daxium-test",
    "description": "Test",
    "settings": {...},
    "android_map": true
  },
  {
    "name": "Test 2",
    "short": "daxium-test-2",
    "description": "Test 2",
    "settings": {...},
    "android_map": false
  }
]

Réponse

La réponse est toujours un tableau JSON avec la liste des instances disponibles.

Propriété | Type | Description ——— | - | ———– name | string | Nom visible pour l'utilisateur de l'instance short | string |Nom court de l'instance à utiliser comme prefixe. description | string | Description de l'instance renseigner par l'administrateur settings | JSON | objet JSON contenant différents paramètres android_map | boolean | indique si les cartes sont activées sur l'application Android ou non



Récuperer une instance précise

Requête

Il est possible de récuperer une instance précise en utilisant l'API /{app_short}.

GET /daxium-test HTTP/1.1

Réponse

La réponse est un objet JSON.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "name": "Test",
  "short": "daxium-test",
  "description": "Test",
  "settings": {
    "icon": "",
    "tzdata": "Europe/Paris",
    "admin_maxStructures": "0"
  },
  "android_map": true
}

Propriété Type Description
name string Nom visible pour l'utilisateur de l'instance
short string Nom court de l'instance à utiliser comme prefixe.
description string Description de l'instance renseignée par l'administrateur
settings JSON objet JSON contenant différents paramètres
android_map boolean indique si les cartes sont activées sur l'application Android ou non

Formulaires

Propriétés

{
  "id": 490,
  "version": 17,
  "name": "Structure Test",
  "updated_at": 1461153416,
  "created_at": 1461153415,
  "settings": {
    "firstLevel": true,
    "functionnalStatus": "list6"
  },
  "conditions": [],
  "fields": [...]
}

Les formulaires sont identifiés par leur identifiant id et leur numéro de version version.

Propriété Type Description
id Nombre Identifiant du formulaire
version Nombre Numéro de version
name Texte Nom affiché
created_at Date Date de création
updated_at Date Date de mise à jour
settings Objet Objet contenant différents paramètres
conditions [Condition] Liste des conditions
fields [Champ] Liste des champs

Champs

{
  "fields": [
    {
      "enable": true,
      "label": "Titre 8",
      "name": "label8",
      "position": 1,
      "type": "label"
    },
    {
      "barcodescan": false,
      "enable": true,
      "externalscan": false,
      "format": "0.00",
      "label": "Nombre",
      "name": "number1",
      "position": 2,
      "prefill": true,
      "readonly": false,
      "required": false,
      "searchable": false,
      "type": "number"
    },
    {
      "enable": true,
      "label": "Checkbox",
      "name": "boolean2",
      "position": 3,
      "prefill": false,
      "readonly": false,
      "required": false,
      "searchable": false,
      "type": "boolean"
    }
  ]
}

Les formulaires sont composées de plusieurs champs de différents types.

Propriétés communes

Propriété Type Description
name Texte Nom système du champ
label Nombre Nom affiché
position Texte Position du champ
type Texte Type de champ
enable Booléen Champ activé ou non
required Booléen Champ requis ou non
prefill Booléen Indique si le champ peut être pré-rempli sur le mobile
readonly Booléen Indique si le champ est modifiable sur le mobile

Récupérer tous les formulaires

Retourne tous les formulaires disponibles avec une pagination

GET /daxium-test/structures?per_page=10&page=0 HTTP/1.1

GET /{app_short}/structures?per_page={per_page}&page={page}&updated_since={updated_since}

Paramètre Description
per_page Le nombre de formulaires par page (par défaut 10)
page La page à retourner
updated_since Filtre permettant de ne retourner que les formulaires mis à jour depuis la date indiquée (Timestamp UNIX).
HTTP/1.1 200 OK
Content-Type: application/json

{
  "structures": [...],
  "total_count": 14,
  "total_pages": 0,
  "next_page": 1,
  "server_time": 1461761418
}

Réponse

Paramètre Type Description
structures [Structure] Liste des formulaires
total_count Nombre Nombre total de formulaires
next_page Nombre Numéro de la page suivante si plusieurs pages
server_time Date Date du serveur courante (Timestamp UNIX)
required Objet Objet listant les formulaires et les listes liées au résultats

Récupérer un formulaire

Retourne un seul formulaire à la version indiquée si le paramètre est renseigné ou la dernière version.

GET /daxium-test/structures/100?version=1 HTTP/1.1

GET /{app_short}/structures/{id}?version={version}

Paramètre Type Description
id Nombre Identifiant du formulaire
version Nombre Version du formulaire
HTTP/1.1 200 OK
Content-Type: application/json

{
  "structure": [...],
  "server_time": 1461761418
}

Réponse

Paramètre Description
structure Formulaire
server_time Date du serveur courante (Timestamp UNIX)

Récupérer un fichier liée à un formualire

Retourne le fichier liée au formulaire, actuellement seuls les images des champs de type Logo sont récuperable avec cette API.

GET /daxium-test/structures/100/file/CD1A7F4F-9517-4D2E-A829-84EC4A2B9D20 HTTP/1.1

GET /{app_short}/structures/{id}/file/{file_id}

Paramètre Description
id Identifiant du formulaire
file_id Identifiant du fichier (UUID)
HTTP/1.1 200 OK
Content-Type: image/jpeg

...

Fiches

Format des valeurs de fiches

Les fiches sont composés de une ou plusieurs valeurs de fiche (item), sous forme de objet clé/valeur, avec pour clé, le nom système du champ.

Type simple

{
  "exampleTypeTexte": "topsyturn gittern fayles unmicrobic", 
  "exampleTypeNombre": 90.0751, 
  "exampleTypeBooleen": true, 
  "exampleTypeDate": 1426325213, 
  "exampleTypeDuration": 42000
}
Type de champ Valeur
text, email Texte
number Nombre
boolean Booléen
date Nombre de secondes écoulés depuis le 01/01/1970 (Timestamp Unix)
duration Nombre de millisecondes

Type location

{
  "lat":44.339722,
  "lng":1.210278,
  "address": "Nantes, France"
}

Propriété Type Description
lat Nombre Latitude du point (WGS84)
lng Nombre Longitude du point (WGS84)
address Texte Adresse géocodé

Type image, signature, file

[
  {
    "id":"c42bafd1-e57a-42b6-83e4-452f5a56e426",
    "name":"capture d'écran.png",
    "mimeType": "image/png",
    "extension": "png",
    "size": 12451,
    "comment": "Lorem ipsum dolor sit amet, consectetur adipisicing elit"
  }
]

Ces types de valeurs sont mises dans un tableau.

Propriété Type Description
id UUID Identifiant unique du fichier
name Texte Nom du fichier
mimeType Texte Type MIME
extension Texte Extension du fichier
size Nombre Taille du fichier en octets
comment Texte Commentaire de l'utilisateur (uniquement type image)

Type list

[86709,94262,29124,65239,52046,84950,77323,41779]

Le type list est un tableau d'identifiant de liste

Type relation

{
  "submissions": [
    {"id":"bdc04cb2-85a2-44f2-978f-0184879341c8"},
    {"id":"f172aa21-21dd-4926-9430-6ef08cebc535"},
    {"id":"8f338361-5047-4be8-9687-377f0d9730b3"},
    {"id":"4b57c65a-ea4e-47ac-8c75-48fced685310"},
    {"id":"1f7b984f-26c1-47ef-b225-74684b3f18ef"},
  ]
}

Les relations sont mises sous forme de tableau d'objet, avec pour seule clé, l'identifiant de la fiche

Récupérer les fiches d'un formulaire

Requête

Retourne toutes les fiches liés au formulaire.

GET /daxium-test/submissions?structure_id=1 HTTP/1.1

GET /{app_short}/submissions?structure_id={id}&per_page={per_page}&page={page}

Paramètre Type Description
id Texte Identifiant du formulaire (requis)
per_page Nombre Nombre de fiches par page
page Nombre Numéro de la page demandée
updated_since Nombre Filtre les résultats à partir de la date de mise à jour fournie (timestamp)

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
  "submissions": [
    {
      "created_at": 1466437149,
      "updated_at": 1466437180,
      "structure_id": 1,
      "structure_version": 1,
      "channels": [
        "SUBMISSION-41/0820b488-3cee-4774-bb8f-3cca754ae8c3"
      ],
      "data_created_at": 1495543307,
      "data_updated_at": 1495543307,
      "id": "09ad07b5-546a-4b7a-8970-a507525c71eb",
      "items": {
        "date8": 1466437174,
        "number0": 68,
        "string4": "Hello",
        "boolean9": true
      },
      "previous_items": [],
      "submission_number": 1234
      "settings": [],
      "latitude": -33.8634,
      "longitude": 151.211
    },
    ...
  ],
  "total_count": 4,
  "total_pages": 1,
  "server_time": 1466694919
}

Propriétés

Propriété Type Description
created_at Date Date de création
updated_at Date Date de mise à jour
structure_id Nombre Identifiant du formulaire
structure_version Nombre Version du formulaire
channels array Liste des conditions remplies par la fiche
data_created_at date date de création des données sur le serveur
data_updated_at date date de dernière mise à jour des données sur le serveur
id UUID Identifiant de la fiche
items Dictionnaire Dictionnaire avec pour clé le nom système du champ
submission_number integer numéro séquentiel
previous_items Dictionnaire Dictionnaire avec pour clé le nom système du champ
latitude Nombre Latitude de la fiche
longitude Nombre Longitude

Rechercher les fiches d'un formulaire

Retourne toutes les fiches liés au formulaire correspondant au critère de recherche.

POST /daxium-test/submissions/search?structure_id=1 HTTP/1.1
{
  "field1": {
    "value": "XXX",
    "operator": "YYY"
  },
  "field2": {
    "value": "XXX",
    "operator": "YYY"
  }
}

POST /{app_short}/submissions/search?structure_id={id}&per_page={per_page}&page={page}

Paramètre Type Description
field Texte Nom systeme du champs
value Texte Valeur recherchée
operator Texte Operateur à utiliser
Opérateur Type de valeur Description
equal Text/Nombre Recherche une valeur exacte
isNull Recherche une valeur null
isNotNull Recherche une valeur non null
isTrue Recherche une valeur vrai
isFalse Recherche une valeur fausse
notequal Text/Nombre Recherche une valeur differente de
less Nombre Recherche strictement inférieur à
greater Nombre Recherche strictement supérieur à
lesseq Nombre Recherche inférieur ou égale à
greatereq Nombre Recherche supérieur ou égale à
contains Texte Recherche contenant
notContains Texte Recherche ne contenant pas
startWith Texte Recherche commencant par
endWith Texte Recherche ne finissant par
address Texte Recherche ne contenant pas
range tableau deux valeurs Recherche entre deux bornes
in Tableau Recherche contenu dans un tableau
HTTP/1.1 200 OK
Content-Type: application/json

{
  "submissions": [
    {
      "created_at": 1466437149,
      "updated_at": 1466437180,
      "structure_id": 1,
      "structure_version": 1,
      "id": "09ad07b5-546a-4b7a-8970-a507525c71eb",
      "channels": [
        "SUBMISSION-41/0820b488-3cee-4774-bb8f-3cca754ae8c3"
      ],
      "data_created_at": 1495543307,
      "data_updated_at": 1495543307,
      "items": {
        "date8": 1466437174,
        "number0": 68,
        "string4": "Hello",
        "boolean9": true
      },
      "previous_items": [],
      "settings": [],
      "latitude": -33.8634,
      "longitude": 151.211
    },
    ...
  ],
  "total_count": 4,
  "total_pages": 1,
  "server_time": 1466694919
}

Récupérer les données de références

Retourne toutes les données de références, toute structure confondue, pour l'utilisateur connecté.

GET /daxium-test/submissions?reference=true HTTP/1.1

GET /{app_short}/submissions?reference=true&per_page={per_page}&page={page}

Paramètre Type Description
per_page Nombre Nombre de fiches par page
page Nombre Numéro de la page demandée
HTTP/1.1 200 OK
Content-Type: application/json

{
  "submissions": [
    {
      "created_at": 1466437149,
      "updated_at": 1466437149,
      "structure_id": 1,
      "structure_version": 1,
      "channels": [
        "SUBMISSION-41/0820b488-3cee-4774-bb8f-3cca754ae8c3"
      ],
      "data_created_at": 1466437149,
      "data_updated_at": 1466437149,
      "id": "09ad07b5-546a-4b7a-8970-a507525c71eb",
      "items": {
        "date8": 1466437174,
        "number0": 68,
        "string4": "Hello",
        "boolean9": true
      },
      "previous_items": [],
      "settings": [],
      "latitude": -33.8634,
      "longitude": 151.211
    },
    ...
  ],
  "total_count": 4,
  "total_pages": 1,
  "server_time": 1466694919
}

Envoyer une fiche

Envoi une nouvelle fiche.

POST /{app_short}/submissions

POST /daxium-test/submissions HTTP/1.1
Content-Type: application/json

{
  "id": "dd795b8d-f235-4d87-b08f-5cd3566e6795",
  "structure_id": 1,
  "structure_version": 3,
  "items": {
    ...
  },
  ...
}

Propriétés dans l'url

Propriété Type Description Exemple
partial Booléen Indique si la fiche doit être enregistré partiellement et donc ne pas prendre en compte les champs requis url?partial=true

Modifier une fiche

Modifie une fiche par son identifiant. Pareil que pour l'envoi de fiche.

PUT /daxium-test/submissions/dd795b8d-f235-4d87-b08f-5cd3566e6795 HTTP/1.1
Content-Type: application/json

{
  "id": "dd795b8d-f235-4d87-b08f-5cd3566e6795",
  "structure_id": 1,
  "structure_version": 3,
  "items": {
    ...
  },
  ...
}

PUT /{app_short}/submissions/{id}

Paramètre Type Description
id UUID Identifiant de la fiche

Propriétés dans l'url

Propriété Type Description Exemple
partial Booléen Indique si la fiche doit être enregistré partiellement et donc ne pas prendre en compte les champs requis url?partial=true
HTTP/1.1 200 OK
Content-Type: application/json

{
  "created_at": 1461835418,
  "updated_at": 1461835418,
  "structure_id": 1,
  "structure_version": 3,
  "id": "dd795b8d-f235-4d87-b08f-5cd3566e6795",
  "items": {...}
}

Supprimer une fiche

Supprime la fiche.

DELETE /daxium-test/submissions/dd795b8d-f235-4d87-b08f-5cd3566e6795 HTTP/1.1

DELETE /{app_short}/submissions/{id}

Paramètre Type Description
id UUID Identifiant de la fiche
HTTP/1.1 204 No Content

Envoyer un fichier

Permet d'envoyer un fichier afin de pouvoir le lier à une fiche. Une fois le fichier utilisé dans une fiche, il n'est pas possible de le lier à nouveau à une autre fiche.

POST /daxium-test/submissions/upload HTTP/1.1
Content-Type: image/png
Content-Length: 8343

....

POST /{app_short}/submissions/upload

HTTP/1.1 200 OK
Content-Type: application/json

{
  "uuid": "3001aeaa-600c-4ab8-ad8a-2e14e4d54431",
  "mime-type": "image\/png",
  "size": 8343
}

Reponse

Propriété Type Description
uuid UUID Identifiant du fichier
mime-type Texte Type MIME du fichier
size Nombre Taille en octets du fichier

Récuperer un fichier

Retourne le fichier lié à la fiche.

GET /daxium-test/submissions/dd795b8d-f235-4d87-b08f-5cd3566e6795/file/3001aeaa-600c-4ab8-ad8a-2e14e4d54431 HTTP/1.1

GET /{app_short}/submissions/{id}/file/{file_id}

Paramètre Type Description
id UUID Identifiant de la fiche
file_id UUID Identifiant du fichier
HTTP/1.1 200 OK
Content-Length: 8343

...

Applications personnalisées

Propriétés

{
  "app": {
    "created_at": 1495463112,
    "updated_at": 1495463128,
    "id": 3,
    "name": "My custom app",
    "banner": {...},
    "splash": {...},
    "menus": [...],
    "screens": [...],
    "settings": [...],
    "groups": [...],
    "widget_spacing": 1,
    "button_type": "standard",
    "label_overlay": true,
    "grant_all": true
  },
  "total_count": 1,
  "total_pages": 1,
  "server_time": 1497950623,
  "required": {
      "files_uuid": [
          "73fc5a59-d9b7-492b-a666-21205031aa74",
          "b3efec90-c7cf-4989-b118-e70d7c21ed5e"
      ]
  }  
}

Les applications personnalisées sont identifiées par un attribut id. Il est possible de retrouver plusieurs applications personnalisées par Vertical Métier.

Propriété Type Description
created_at date Date de création (timestamp UNIX)
updated_at date Date de modification (timestamp UNIX)
id integer Identifiant
name string Nom
banner JSON Bannière
splash JSON Splash screen
menus array Liste des items composants le menu
screens array Liste des écrans de l'application
settings array Liste des paramètres
groups array Liste des groupes ayant accès à l'application
widget_spacing integer espace relatif entre les boutons. 0 correspond au mode flat, 1 à la configuration standard
button_type string type de bouton: standard (icône font-awesome), mix (icône image), full (image de fond)
label_overlay boolean affichage du bandeau sous les libellés des boutons
grant_all boolean accessible à tous les utilisateurs ou non

Splash

{
  "splash": {
      "created_at": 1495463112,
      "updated_at": 1497950593,
      "active": true,
      "image": "73fc5a59-d9b7-492b-a666-21205031aa74",
      "color": "#5084C4",
      "aspect": "fit"
  }
}

Propriété Type Description
created_at date Date de création (timestamp UNIX)
updated_at date Date de modification (timestamp UNIX)
active boolen Indique si le splash screen doit être affiché ou non au lancement de l'application
image string Identifiant de l'image
color string couleur de fond (hexadecimal)
aspect string fit s'adapte à l'espace disposible, fill rempli l'espace disponible
{
  "menus": [
  {
      "created_at": 1495463112,
      "updated_at": 1495463120,
      "index": 0,
      "target": "daxium-air://app/home",
      "label": {
          "en": "Home",
          "es": "Inicio",
          "fr": "Accueil"
      },
      "icon": {
          "type": "font-awesome",
          "value": "fa-home"
      }
  },
  {
      "created_at": 1495463112,
      "updated_at": 1495463120,
      "index": 1,
      "target": "daxium-air://app/new_submission",
      "label": {
          "en": "New submission",
          "es": "Nuevo registro",
          "fr": "Nouvelle fiche"
      },
      "icon": {
          "type": "font-awesome",
          "value": "fa-pencil"
      }
  },
  ...
  ]  
}

Propriété Type Description
created_at date Date de création (timestamp UNIX)
updated_at date Date de modification (timestamp unix)
index integer Position dans l'ordre d'apparition des différentes entrées du menu
target string Identifiant de l'action à effectuer lors de l'intéraction avec cette entrée du menu
label JSON Texte affiché dans le menu. Objet JSON contenant chaque locale (identifiée par la clef)
icon JSON Objet icône, composé d'un type et d'une valeur. Seul Font Awesome est supporté pour l'instant.

Screens

Une application personnalisée est composée de différents écrans paramètrables selon les propriétés suivantes

{
    "screens": [
        {
            "created_at": 1495463112,
            "updated_at": 1495463120,
            "name": "daxium_home",
            "pages": [...]
        }
    ]
}

Propriété Type Description
created_at date Date de création (timestamp UNIX)
updated_at date Date de modification (timestamp UNIX)
name string Nom identifiant l'écran
pages array Liste des pages qui composent un écran

Pages

Un écran peut être composée d'une ou plusieurs pages.

{
    "pages": [
        {
            "created_at": 1495463112,
            "updated_at": 1495463120,
            "system_name": "home_page",
            "title": {
                "fr": "Page d'accueil",
                "en": "Home page",
                "es": "Inicio"
            },
            "side_menu": true,
            "widgets": [...],
            "layout": {...}
        }
    ]
}

Propriété Type Description
created_at date Date de création (timestamp UNIX)
updated_at date Date de modification (timestamp UNIX)
system_name string Nom système de la page
title string Titre de la page. Objet JSON contenant chaque locale (identifiée par la clef)
side_menu boolean Indique si le menu gauche doit être affiché sur la page
widgets array Liste des widgets composants la page
layout array Type de layout choisi pour cette page

Layout

{
  "layout": [
      {
        "x": 0,
        "y": 0,
        "width": 2,
        "height": 1
      },
      {
        "x": 1,
        "y": 0,
        "width": 1,
        "height": 1
      },
      {
        "x": 1,
        "y": 1,
        "width": 1,
        "height": 1
      },
      {
        "x": 2,
        "y": 0,
        "width": 2,
        "height": 1
      }
    ]
}

Propriété Type Description
x string Coordonnées X du widget dans le layout
y string Coordonnées Y du widget dans le layout
width string Longueur relative du widget
height string Hauteur relative du widget

Widgets

Un widget est matérialisé sous la forme d'un bouton sur une page.

{
  "widgets": [
    {
        "created_at": 1495463112,
        "updated_at": 1495463120,
        "type": "button",
        "index": 0,
        "label": {
            "en": "New submission",
            "es": "Nuevo registro",
            "fr": "Nouvelle fiche"
        },
        "color": "#2ecc71",
        "target": "daxium-air://app/new_submission",
        "icon": {
            "type": "font-awesome",
            "value": "fa-pencil"
        }
    },
    {
        "created_at": 1495463112,
        "updated_at": 1495463120,
        "type": "button",
        "index": 1,
        "label": {
            "en": "My submissions",
            "es": "Mis registros",
            "fr": "Mes fiches"
        },
        "color": "#f39c12",
        "target": "daxium-air://app/my_submission",
        "icon": {
            "type": "font-awesome",
            "value": "fa-tags"
        }
    },
    ...
  ]
}

Propriété Type Description
created_at date Date de création (timestamp UNIX)
updated_at date Date de modification (timestamp UNIX)
type string Type de bouton
index integer Position dans l'ordre d'apparition des différentes widgets affichés sur la page
label JSON Texte affiché sur le widget. Objet JSON contenant chaque locale (identifiée par la clef)
color string Couleur de fond du widget (hexadecimal)
target string Identifiant de l'action à effectuer lors de l'intéraction avec le widget
icon JSON Icône affiché sur le widget. Objet icône, composé d'un type et d'une valeur

Standard

{
  "icon": {
      "type": "font-awesome",
      "value": "fa-tags"
  }
}

Icône personnalisé

{
  "icon": {
      "type": "image",
      "value": "49cb243f-d0f2-4aec-901e-89a8281e7a0"
  }
}

Image de fond

{
  "icon": [],
  "background": "f0af27de-fbfb-41f8-948d-57612ca05e91"
}

Récuperer l'ensemble des applications personnalisées

Retourne toutes les applications personnalisées sous un format court pour le Vertical Metier donné. Si aucune application personnalisée n'est configurée, retourne l'application par défaut sous format complet.

Requête

GET /daxium-test/customapps HTTP/1.1

GET /{app_short}/customapps

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
  "apps": [
      {
          "created_at": 1497952660,
          "updated_at": 1497952711,
          "id": 13,
          "name": "Image buttons"
      },
      {
          "created_at": 1497952574,
          "updated_at": 1497952653,
          "id": 12,
          "name": "Custom icons"
      }
  ],
  "total_count": 2,
  "total_pages": 1,
  "server_time": 1497953611
}
Propriété Type Description
apps array Liste des applications personnalisées contenant dates de création/modification, id et nom
total_count integer Nombre de résultat récupérés
total_pages integer Nombre de pages de résultats total
server_time date Date du serveur courante (Timestamp UNIX)

Récuperer une application personnalisée

Retourne une application personnalisée par son identifiant

Requête

GET /daxium-test/customapps/10 HTTP/1.1

GET /{app_short}/customapps/{app_id}

Paramètre Type Description
app_id integer Identifiant de l'application personnalisée

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
  "app": {
    "created_at": 1495463112,
    "updated_at": 1495463128,
    "id": 3,
    "name": "My custom app",
    "banner": {...},
    "splash": {...},
    "menus": [...],
    "screens": [...],
    "settings": [...],
    "groups": [...],
    "widget_spacing": 1,
    "button_type": "standard",
    "label_overlay": true,
    "grant_all": true
  },
  "total_count": 1,
  "total_pages": 1,
  "server_time": 1497950623,
  "required": {
      "files_uuid": [
          "73fc5a59-d9b7-492b-a666-21205031aa74",
          "b3efec90-c7cf-4989-b118-e70d7c21ed5e"
      ]
  }  
}
Propriété Type Description
app JSON Identifiant de l'application personnalisée
total_count integer Nombre de résultat récupérés
total_pages integer Nombre de pages de résultats total
server_time date Date du serveur courante (Timestamp UNIX)
required JSON listes des identifiants de fichier contenus dans l'application

Récuperer un fichier d'une application personnalisée

Retourne un fichier d'une application personnalisée

Requête

GET /daxium-test/customapps/10/file/f0af27de-fbfb-41f8-948d-57612ca05e91 HTTP/1.1

GET /{app_short}/customapps/{app_id}/file/{file_uuid}

Paramètre Type Description
file_uuid UUID identifiant du fichier à récuperer

Réponse

HTTP/1.1 200 OK

Listes

Les listes sont structurées sous forme d'arbre, chaque élément de liste peut contenir un ou plusieurs élément de listes.

{
  "id": 19620,
  "root_id": 19618,
  "parent_id": 19618,
  "created_at": 1449840918,
  "updated_at": 1450789764,
  "name": "Chat",
  "has_image": true,
  "level": 1,
  "position": 2,
  "external_id": "cat",
  "functionnal_status_color": "#8e44ad",
  "url": "https:\/\/fr.wikipedia.org\/wiki\/Chat"
}
Propriété Type Description
id Nombre Identifiant de la liste
root_id Nombre Identifiant du noeud racine de la liste
parent_id Nombre Identifiant du parent de la liste
created_at Date Date de création
updated_at Date Date de mise à jour
deleted_at Date Date de suppression
name Texte Nom affiché
has_image Booléen Indique si la liste à une image
level Nombre Niveau de profondeur, 0 étant le noeud racine
position Nombre Position de la liste à son niveau de profondeur
external_id Texte Identifiant externe
url Texte URL
functionnal_status_color Texte Couleur de la liste (en hexadecimal)

Récuperation d'une liste

Retourne la liste et tout ses enfants avec une pagination

Requête

GET /daxium-test/lists/19618?per_page=100&page=0 HTTP/1.1

GET /{app_short}/lists/{list_id}?per_page={per_page}&page={page}&updated_since={updated_since}

Paramètre Type Description
per_page Nombre Le nombre de liste par page (par défaut 10, maximum 1000)
page Nombre La page à retourner
updated_since Date Filtre permettant de ne retourner que les listes mis à jour depuis la date indiqué.

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
  "lists": [...],
  "total_count": 14,
  "total_pages": 0,
  "next_page": 1,
  "server_time": 1461761418
}
Paramètre Type Description
lists [Liste] Liste des élements de listes triée
total_count Nombre Nombre total de listes
next_page Nombre Numéro de la page suivante si plusieurs pages
server_time Date Date du serveur courante

Création d'une liste

Créée une liste avec enfants de façon hiérarchique avec la propriété items.

Requête

POST /daxium-test/lists HTTP/1.1
Content-Type: application/json

{
  "name": "Région - France",
  "external_id": "fr",
  "items":[
    {
      "name": "Pays de la loire",
      "external_id": "fr.pdl",
      "items": 
      [
        {
          "name": "Loire-Atlantique",
           "external_id": "fr.pdl.44"
        },          
        {
          "name": "Vendée",
          "external_id": "fr.pdl.88"
        }
      ]
    }
  ]
}

POST /{app_short}/lists

Paramètre Type Description
name Texte Nom de la liste (Requis)
external_id Texte Identifiant Externe
items [Liste] Liste des enfants

Réponse

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": 66310
}
Paramètre Type Description
id Nombre L'identifiant du noeud racine créée

Modification des élements d'une liste

Modifie le nom d'un ou plusieurs élément d'une liste par son identifiant id.

Requête

PATCH /daxium-test/lists/66310 HTTP/1.1
Content-Type: application/json

[
  {
    "id": 66311,
    "name": "Grand Ouest"
  }
]

PATCH /{app_short}/lists/{root_id}

Paramètre Type Description
root_id Nombre Identifiant du noeud racine

Une listes des modifications doit être envoyé sous la forme de liste d'objet JSON, avec l'identifiant de l'élément à modifier.

Réponse

HTTP/1.1 204 No Content

Supprimer une liste complète

Supprime la liste complètement avec tout les éléments, doit être un noeud racine.

Requête

DELETE /daxium-test/lists/19618 HTTP/1.1

DELETE /{app_short}/lists/{root_id}

Paramètre Type Description
root_id Nombre Identifiant du noeud racine

Réponse

HTTP/1.1 204 No Content

Supprimer un élement d'une liste

Supprime la liste, avec tout les éléments enfants.

Requête

DELETE /daxium-test/lists/19618/19624 HTTP/1.1

DELETE /{app_short}/lists/{root_id}/{list_id}

Paramètre Type Description
root_id Nombre Identifiant du noeud racine
list_id Nombre Identifiant de la liste

Réponse

HTTP/1.1 204 No Content

Récupérer l'image liée à une liste

Retourne l'image liée à la liste, uniquement si l'attribut has_image est à true

Requête

GET /daxium-test/lists/19618/19620/image HTTP/1.1

GET /{app_short}/lists/{root_id}/{list_id}/image

Paramètre Type Description
root_id Nombre Identifiant du noeud racine
list_id Nombre Identifiant de la liste

Réponse

HTTP/1.1 200 OK
Content-Type: image/jpeg

...

Récuperation des ids de listes et accessSet nécessitant une mise à jour

Retourne la liste d'ids de toutes les listes et accessSet nécessitant une mise à jour

Requête

POST /daxium-test/lists/updated HTTP/1.1
Content-Type: application/json

  {
    "list_id": 123456,
    "list_updated_since": 1234567890,
    "access_set_updated_since": 1234567890
  },
  ...

POST /{app_short}/lists/updated

Paramètre Type Description
list_id Nombre l'id de la liste
list_updated_since Nombre Filtre permettant de detecter si la liste a été mise a jour depuis la date indiquée
access_set_updated_since Date Filtre permettant de detecter si l'autorisation d'accès à été mis à jour depuis la date indiquée.

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
    "lists_to_update": [
    XXX,
    YYY
    ],
    "lists_with_access_set": [
    XXX,
    YYY
    ],    "access_set_to_update": [
    XXX,
    YYY
    ]
}
Paramètre Type Description
lists_to_update [ids] Liste d'id de liste ayant une modification
lists_with_access_set [ids] Liste d'id de liste soumis a une autorisation d'accès
access_set_to_update [ids] Liste d'id des autorisations d'accès ayant une modification

Recupère les ids d'éléments selectionnables

Retourne la liste de tout les ids selectionnables pour une liste donnée (la liste des noeuds de liste autorisé par l'autorisation d'accès)

Requête

GET /daxium-test/lists/19618/selectables HTTP/1.1

GET /{app_short}/lists/{list_id}/selectables

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
    "selectable_ids": [
    XXX,
    YYY
    ],
    "server_time": 1469461670
}
Paramètre Type Description
selectable_ids [ids] liste d'id selectionnable pour l'utilisateur
server_time Date Date du serveur courante

Mettre à jour une liste

Met à jour un élément de liste

Requête

PUT /daxium-test/lists/19618/19619 HTTP/1.1
Content-Type: application/json

{
      "name": "xxxxx",
      "latitude": "xxxx",
      "longitude": "xxxx",
      "external_id": "xxx",
      "functionnal_status_color": "xxx",
      "url": "xxx"
}

PUT /{app_short}/lists/{root_id}/{list_id}

Paramètre Type Description
name Texte Nom de la liste
latitude Nombre Latitude
longitude Nombre Longitude
external_id Texte id interne
functionnal_status_color Texte couleur de l'élément de liste
url Texte Url de l'élément de liste

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

[]

Ajouter en masse d'enfants

Ajout en masse d'enfant

Requête

PATCH /daxium-test/lists/19618/19619 HTTP/1.1
Content-Type: application/json
[
  {
      "name": "xxxxx",
      "latitude": "xxxx",
      "longitude": "xxxx",
      "external_id": "xxx",
      "functionnal_status_color": "xxx",
      "url": "xxx"
  }
]

PATCH /{app_short}/lists/{root_id}/{parent_id}

Paramètre Type Description
liste [liste] Tableau de liste

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

[]

Récupérer les enfants

Récupération de tous les enfants direct d'un noeud

Requête

GET /daxium-test/lists/19618/child/19619 HTTP/1.1

GET /{app_short}/lists/{root_id}/child/{parent_id}

Réponse

Paramètre Type Description
liste [liste] Tableau de liste
total_count Nombre Nombre total d'élément
total_pages Nombre Nombre total de page
server_time Nombre Temps du serveur
HTTP/1.1 200 OK
Content-Type: application/json
{
    "lists": [
        ...
    ],
    "total_count": XX,
    "total_pages": YY,
    "server_time": 1479742896
}

Recherche

Recherche d'une liste par rapport à l'external_id

Requête

POST /daxium-test/lists/13339835/search HTTP/1.1

{
  "external_id": "0012"
}
Paramètre Type Description
external_id string ID externe recherché

POST /{app_short}/lists/{root_id}/search

Réponse

Paramètre Type Description
liste [liste] Tableau de liste
HTTP/1.1 200 OK
Content-Type: application/json
[
    {
        "id": 13339835,
        "name": "Créé",
        "external_id": "0012",
        "functionnalStatusColor": "blue",
        "level": 1,
        "position": 1,
        "parent_id": 13339834,
        "root_id": 13339834,
        "vm_id": 204,
        "url": ""
    }
]

Changer la position d'un noeud

Chnager la position d'un noeud par rapport à un autre

PUT /daxium-test/lists/13897339/13899509/after/13899530 HTTP/1.1
PUT /daxium-test/lists/13897339/13899509/before/13899530 HTTP/1.1

PUT /{app_short}/lists/{root_id}/{node_to_move_id}/{direction}/{node_position_id}

Paramètre Type Description
root_id id root_id de la liste a modifier
node_to_move_id id ID du noeud a déplacer
direction texte “after” ou “before”, où placer le noeud par rapport a un autre
node_position_id id ID du noeud de référence pour le placement

Réponse

HTTP/1.1 200 OK No Content

Autorisation d'accès sur les listes

The list access sets enables you to restrict some elements from the lists

Récuperer toutes les autorisations d'accès disponible

Retourne la liste de toutes les autorisations definies

Requête

GET /daxium-test/list/accessset HTTP/1.1

GET /{app_short}/list/accessset

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
    "listaccesssets": [
        {
            "id": "672da115-72f2-4448-8e97-dfc080467e96",
            "name": "bride",
            "users": [
                "143"
            ],
            "groups": [],
            "root_id": 189457,
            "lists": [
                189542,
                189557,
                189555
            ]
        }
    ],
    "total_count": 1,
    "total_pages": 1,
    "server_time": 1469542453
}
Paramètre Type Description
listaccesssets [las] Liste des élements d'autorisation d'accès
total_count Nombre Nombre total de listes
next_page Nombre Numéro de la page suivante si plusieurs pages
server_time Date Date du serveur courante

Récuperer toutes les autorisations d'accès pour une liste et un utilisateur

Retourne la liste de toutes les autorisations definies pour une liste et un utilisateur donnée

Requête

GET /daxium-test/list/42/accessset/user/42 HTTP/1.1

GET /{app_short}/list/{list_id}/accessset/user/{user_id}

Paramètre Type Description
list_id Nombre id de la liste
user_id Nombre id de l'utilisateur

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

[
    "672da115-72f2-4448-8e97-dfc080467e96"
]
Paramètre Type Description
listaccesssets [las] Liste des ids d'autorisation d'accès

Récuperer les informations d'une autorisation d'accès

Retourne toutes les informations sur une autorisation d'accès

Requête

GET /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96 HTTP/1.1

GET /{app_short}/list/{list_id}/accessset/{list_access_set_id}

Paramètre Type Description
list_access_set_id Uuid id de la liste

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": "672da115-72f2-4448-8e97-dfc080467e96",
    "name": "bride",
    "users": [
        {
            "id": 143,
            "email": "v.ramona@daxium.com",
            "active": true,
            "first_name": "Vincent",
            "last_name": "Ramona",
            "last_login_at": "2015-12-11T16:11:53+0100",
            "settings": {
                "locale": "fr"
            }
        }
    ],
    "groups": [],
    "root_id": {
        "has_image": false,
        "id": 189457,
        "name": "Fournitures",
        "position": 210,
        "level": 0
    },
    "lists": [
        {
            "created_at": "2016-07-21T10:34:00+0200",
            "updated_at": "2016-07-21T10:34:09+0200",
            "vertical_metier_id": 27,
            "vertical_metier": {
                "created_at": "2016-02-18T17:27:18+0100",
                "updated_at": "2016-02-18T17:27:22+0100",
                "id": 27,
                "name": "frob",
                "short": "pictbase-frob",
                "description": "frob",
                "active": true,
                "settings": []
            },
            "parent_id": 189541,
            "root_id": 189457,
            "has_image": false,
            "id": 189542,
            "name": "de réduction",
            "position": 1,
            "level": 2,
            "list_access_set": [
                {
                    "created_at": "2016-07-26T14:01:36+0200",
                    "updated_at": "2016-07-26T14:01:36+0200",
                    "vertical_metier_id": 27,
                    "vertical_metier": {
                        "created_at": "2016-02-18T17:27:18+0100",
                        "updated_at": "2016-02-18T17:27:22+0100",
                        "id": 27,
                        "name": "frob",
                        "short": "pictbase-frob",
                        "description": "frob",
                        "active": true,
                        "settings": []
                    }
                }
            ]
        },
        {
            "created_at": "2016-07-21T10:34:00+0200",
            "updated_at": "2016-07-21T10:34:10+0200",
            "vertical_metier_id": 27,
            "vertical_metier": {
                "created_at": "2016-02-18T17:27:18+0100",
                "updated_at": "2016-02-18T17:27:22+0100",
                "id": 27,
                "name": "frob",
                "short": "pictbase-frob",
                "description": "frob",
                "active": true,
                "settings": []
            },
            "parent_id": 189541,
            "root_id": 189457,
            "has_image": false,
            "id": 189557,
            "name": "vissée",
            "position": 3,
            "level": 2,
            "list_access_set": [
                {
                    "created_at": "2016-07-26T14:01:36+0200",
                    "updated_at": "2016-07-26T14:01:36+0200",
                    "vertical_metier_id": 27,
                    "vertical_metier": {
                        "created_at": "2016-02-18T17:27:18+0100",
                        "updated_at": "2016-02-18T17:27:22+0100",
                        "id": 27,
                        "name": "frob",
                        "short": "pictbase-frob",
                        "description": "frob",
                        "active": true,
                        "settings": []
                    }
                }
            ]
        },
        {
            "created_at": "2016-07-21T10:34:00+0200",
            "updated_at": "2016-07-21T10:34:09+0200",
            "vertical_metier_id": 27,
            "vertical_metier": {
                "created_at": "2016-02-18T17:27:18+0100",
                "updated_at": "2016-02-18T17:27:22+0100",
                "id": 27,
                "name": "frob",
                "short": "pictbase-frob",
                "description": "frob",
                "active": true,
                "settings": []
            },
            "parent_id": 189553,
            "root_id": 189457,
            "has_image": false,
            "id": 189555,
            "name": "Test2",
            "position": 2,
            "level": 5,
            "list_access_set": [
                {
                    "created_at": "2016-07-26T14:02:38+0200",
                    "updated_at": "2016-07-26T14:21:17+0200",
                    "vertical_metier_id": 27,
                    "vertical_metier": {
                        "created_at": "2016-02-18T17:27:18+0100",
                        "updated_at": "2016-02-18T17:27:22+0100",
                        "id": 27,
                        "name": "frob",
                        "short": "pictbase-frob",
                        "description": "frob",
                        "active": true,
                        "settings": []
                    }
                }
            ]
        }
    ]
}
Paramètre Type Description
listaccessset [las] L'autorisation d'accès

Récuperer un type d'information d'une autorisation d'accès

Retourne la liste correspondant a l'entité demandée pour l'autorisation d'accès

Requête

GET /{app_short}/list/{list_id}/accessset/{list_access_set_id}/[users|groups|lists]

Paramètre Type Description
users/groups/lists Texte Entité demandée
GET /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/users HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 143,
        "email": "v.ramona@daxium.com",
        "active": true,
        "first_name": "Vincent",
        "last_name": "Ramona",
        "last_login_at": "2015-12-11T16:11:53+0100",
        "settings": {
            "locale": "fr"
        }
    }
]
GET /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/groups HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json

[]
GET /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/lists HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "created_at": "2016-07-21T10:34:00+0200",
        "updated_at": "2016-07-21T10:34:09+0200",
        "vertical_metier_id": 27,
        "vertical_metier": {
            "created_at": "2016-02-18T17:27:18+0100",
            "updated_at": "2016-02-18T17:27:22+0100",
            "id": 27,
            "name": "frob",
            "short": "pictbase-frob",
            "description": "frob",
            "active": true,
            "settings": []
        },
        "parent_id": 189541,
        "root_id": 189457,
        "has_image": false,
        "id": 189542,
        "name": "de réduction",
        "position": 1,
        "level": 2,
        "list_access_set": [
            {
                "created_at": "2016-07-26T14:01:36+0200",
                "updated_at": "2016-07-26T14:01:36+0200",
                "vertical_metier_id": 27,
                "vertical_metier": {
                    "created_at": "2016-02-18T17:27:18+0100",
                    "updated_at": "2016-02-18T17:27:22+0100",
                    "id": 27,
                    "name": "frob",
                    "short": "pictbase-frob",
                    "description": "frob",
                    "active": true,
                    "settings": []
                }
            }
        ]
    },
    {
        "created_at": "2016-07-21T10:34:00+0200",
        "updated_at": "2016-07-21T10:34:10+0200",
        "vertical_metier_id": 27,
        "vertical_metier": {
            "created_at": "2016-02-18T17:27:18+0100",
            "updated_at": "2016-02-18T17:27:22+0100",
            "id": 27,
            "name": "frob",
            "short": "pictbase-frob",
            "description": "frob",
            "active": true,
            "settings": []
        },
        "parent_id": 189541,
        "root_id": 189457,
        "has_image": false,
        "id": 189557,
        "name": "vissée",
        "position": 3,
        "level": 2,
        "list_access_set": [
            {
                "created_at": "2016-07-26T14:01:36+0200",
                "updated_at": "2016-07-26T14:01:36+0200",
                "vertical_metier_id": 27,
                "vertical_metier": {
                    "created_at": "2016-02-18T17:27:18+0100",
                    "updated_at": "2016-02-18T17:27:22+0100",
                    "id": 27,
                    "name": "frob",
                    "short": "pictbase-frob",
                    "description": "frob",
                    "active": true,
                    "settings": []
                }
            }
        ]
    },
    {
        "created_at": "2016-07-21T10:34:00+0200",
        "updated_at": "2016-07-21T10:34:09+0200",
        "vertical_metier_id": 27,
        "vertical_metier": {
            "created_at": "2016-02-18T17:27:18+0100",
            "updated_at": "2016-02-18T17:27:22+0100",
            "id": 27,
            "name": "frob",
            "short": "pictbase-frob",
            "description": "frob",
            "active": true,
            "settings": []
        },
        "parent_id": 189553,
        "root_id": 189457,
        "has_image": false,
        "id": 189555,
        "name": "Test2",
        "position": 2,
        "level": 5,
        "list_access_set": [
            {
                "created_at": "2016-07-26T14:02:38+0200",
                "updated_at": "2016-07-26T14:21:17+0200",
                "vertical_metier_id": 27,
                "vertical_metier": {
                    "created_at": "2016-02-18T17:27:18+0100",
                    "updated_at": "2016-02-18T17:27:22+0100",
                    "id": 27,
                    "name": "frob",
                    "short": "pictbase-frob",
                    "description": "frob",
                    "active": true,
                    "settings": []
                }
            }
        ]
    }
]

Réponse

Paramètre Type Description
users/groups/lists [array] Liste des utilisateurs/groupes/listes de d'autorisation d'accès

Supprimer une autorisation d'accès

Supprime une autorisation d'accès

Requête

DELETE /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96 HTTP/1.1

DELETE /{app_short}/list/{list_id}/accessset/{list_access_set_id}

Paramètre Type Description
list_access_set_id Uuid id de la liste

Réponse

HTTP/1.1 204 No Content


Supprimer une entité de l'autorisation d'accès

Supprime une entité de l'autorisation d'accès

Requête

DELETE /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/users/42 HTTP/1.1
DELETE /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/groups/42 HTTP/1.1
DELETE /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/lists/42 HTTP/1.1

DELETE /{app_short}/list/{list_id}/accessset/{list_access_set_id}/{entity}/{entity_id}

Paramètre Type Description
list_access_set_id Uuid id de la liste
entity [users/groups/lists] type d'entité
entity_id Uuid id de l'entité

Réponse

HTTP/1.1 204 No Content


Creer une autorisation d'accès

Création d'une autorisation d'accès

Requête

POST /daxium-test/list/42/accessset HTTP/1.1

Content-Type: application/json
{
    'name': 'bli',
    'groups': [],
    'users': [],
    'lists': []

}

POST /{app_short}/list/42/accessset

Paramètre Type Description
list_id Entier id de la liste racine
Paramètre Type Description
name Texte Nom de l'autorisation d'accès
groups [ids] Tableau d'ids correspondant aux groupes
users [ids] Tableau d'ids correspondant aux utilisateurs
lists [ids] Tableau d'ids correspondant aux listes

Réponse

Paramètre Type Description
list_access_set_id Uuid L'uuid de l'autorisation d'accès
HTTP/1.1 200 OK

{
    "id": "672da115-72f2-4448-8e97-dfc080467e96"
}

Modifier une autorisation d'accès

Modification d'une autorisation d'accès (verbe PUT pour ajouter et DELETE pour supprimer des éléments)

Requête

PUT /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/users/42 HTTP/1.1
PUT /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/groups/42 HTTP/1.1
PUT /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/lists/42 HTTP/1.1
DELETE /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/users/42 HTTP/1.1
DELETE /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/groups/42 HTTP/1.1
DELETE /daxium-test/list/42/accessset/672da115-72f2-4448-8e97-dfc080467e96/lists/42 HTTP/1.1

PUT /{app_short}/list/{list_id}/accessset/{list_access_set_id}/{entity}/{entity_id}

DELETE /{app_short}/list/{list_id}/accessset/{list_access_set_id}/{entity}/{entity_id}

Paramètre Type Description
list_access_set_id Uuid id de l'autorisation
entity [users/groups/lists] type d'élément
entity_id Entier id de l'élément

Réponse

HTTP/1.1 200 OK

Generation des dépendances interne

Génère toutes les dépendances interne des autorisations d'accès. A lancer une fois toutes les modifications terminée. Lancé automatiquement toutes les 5 minutes

Requête

POST /daxium-test/list/42/accessset/generate/672da115-72f2-4448-8e97-dfc080467e96 HTTP/1.1

POST /{app_short}/list/{list_id}/accessset/{list_access_set_id}/generate

Paramètre Type Description
list_access_set_id Uuid id de l'autorisation

Response

HTTP/1.1 200 OK

Tâches

Récupérer des tâches

Requête

Permet de récuperer les tâches par utilisateur et dates.

GET /{app_short}/tasks

GET /daxium-test/tasks HTTP/1.1
Content-Type: application/json
Paramètre Type Filtre
id string Identifiant
greater_start_date date Date de début supérieure ou égale à (UNIX timestamp)
lower_start_date date Date de début inférieure ou égale à (UNIX timestamp)
greater_due_date date Date d'échéance supérieure ou égale à (UNIX timestamp)
lower_due_date date Date d'échéance inférieure ou égale à (UNIX timestamp)
user_id integer Pour l'utilisateur donnée
me Tâches de l'utilisateur connecté
page integer Numéro de la page
per_page integer Nombre de tâches par page

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
  "tasks": [
    {
      "id": "6e7ae869-af80-4d31-aa2b-483ebd0f9078",
      "created_at": 1472828179,
      "updated_at": 1472828179,
      "start_date": 1473890400,
      "due_date": 1473899400,
      "submission": {
        "structure_id": 353,
        "structure_version": 4,
        "id": "1f8e89f4-ba40-461e-a8b0-f4a88d29dfb3",
        "items": {
          ...
        },
        "previous_items": [],
        "settings": []
      },
      "user_id": 418,
      "duration": 3600,
      "delay_before": 300,
      "delay_after": 300
    },
    ...
  ],
  "total_count": 4,
  "total_pages": 1,
  "server_time": 1466694919
}

Propriétés

Propriété Type Description
id UUID Identifiant de la tâche
start_date Date Date de début de la tâche
due_date Date Date d'échéance de la tâche
duration Nombre Durée de la tâche
delay_before Nombre Délai d'affichage indicatif avant le début de la tâche
delay_after Nombre Délai d'affichage indicatif après l'heure d'échéance de la tâche
created_at Date Date de création
updated_at Date Date de mise à jour
submission Submission Fiche de la tâche
user_id Nombre ou Null ID de l'utilisateur assigné OU Null

Créer une tâche simple

Requête

Création d'une tâche simple

POST /{app_short}/tasks

POST /{app_short}/tasks HTTP/1.1
Content-Type: application/json

{
  "start_date": 1561449635,
  "due_date": 1561453635,
  "user_id": 5675,
  "duration": 3600,
  "delay_before": 300,
  "delay_after": 300,
  "submission_model_id": "xxxx-xxxx-xxxx-xxxx"
}

OU

{
  "start_date": 1561449635,
  "due_date": 1561453635,
  "user_id": 5675,
  "duration": 3600,
  "delay_before": 300,
  "delay_after": 300,
  "submissions": [
    "xxxx-xxxx-xxxx-xxxx", "xxxx-xxxx-xxxx-xxxx"
  ]
}

Propriétés

Propriété Type Description
id UUID Identifiant de la tâche
start_date Date Date de début de la tâche (UNIX timestamp)
due_date Date Date d'échéance de la tâche (UNIX timestamp)
duration Nombre Durée de la tâche en secondes
delay_before Nombre Délai d'affichage indicatif en secondes avant le début de la tâche
delay_after Nombre Délai d'affichage indicatif en secondes après l'heure d'échéance de la tâche
submission_model_id UUID ID d'une fiche modèle
submissions array Tableau d'ID de fiches
user_id Nombre ou Null ID de l'utilisateur

Réponse

HTTP/1.1 200 OK
Content-Type: application/json
{
  "id": "14d8028a-b5ee-4a0e-8379-9fa7b174285c",
  "start_date": 1561449635,
  "due_date": 1561453635,
  "duration": 3600,
  "delay_before": 0,
  "delay_after": 0,
  "created_at": 1561451262,
  "updated_at": 1561451262,
  "user_id": 5675,
  "time_status": "late",
  "fill_status": "filled",
  "submission": {
    "created_at": 1561451250,
    "updated_at": 1561451262,
    "structure_id": 32583,
    "structure_version": 1,
    "task_id": "14d8028a-b5ee-4a0e-8379-9fa7b174285c",
    "channels": [],
    "user_id": 5675,
    "data_created_at": 1561451250,
    "data_updated_at": 1561451250,
    "id": "93dc11fc-b9e8-4d63-b860-79ebed0f4777",
    "items": {
      "date0": 1561543200,
      "date1": 1561546800
    },
    "previous_items": [],
    "settings": [],
    "submission_number": 9716177,
    "subscribers": []
  }
}

Propriétés

Propriété Type Description
id UUID Identifiant de la tâche
start_date Date Date de début de la tâche
due_date Date Date d'échéance de la tâche
duration Nombre Durée de la tâche
delay_before Nombre Délai d'affichage indicatif avant le début de la tâche
delay_after Nombre Délai d'affichage indicatif après l'heure d'échéance de la tâche
created_at Date Date de création
updated_at Date Date de mise à jour
user_id Nombre ou Null ID de l'utilisateur assigné OU Null
time_status String État courant de la tâche
fill_status String État courant du remplissage de la tâche
submission Submission Fiche de la tâche

Créer une tâche récurrente

Les propriétés sont identiques à celle d'une tâche simple, cependant, la propriété due_date n'est pas à renseigner.

POST /{app_short}/tasks HTTP/1.1
Content-Type: application/json

{
  "start_date": 1473890400,
  ...,
  "delay_after": 300,
  "recurrency": {
    "type": "daily",
    "days": {
      "mon": {
        "start": "00:00",
        "end": 1800
      },
      "tue": {
        "start": "02:00",
        "end": 1800
      },
      "wed": {
        "start": "04:00",
        "end": 1800
      },
      "thu": {
        "start": "06:00",
        "end": 1800
      },
      "fri": {
        "start": "08:00",
        "end": 1800
      },
      "sat": {
        "start": "10:00",
        "end": 1800
      },
      "sun": {
        "start": "12:00",
        "end": 1800
      }
    },
    "end": {
      "type": "occurrence",
      "value": 5
    },
    "interval": 1
  }
}

Propriétés

Propriété Type Description
id UUID Identifiant de la tâche
start_date Date Date de début de la tâche
duration Nombre Durée de la tâche
delay_before Nombre Délai d'affichage indicatif avant le début de la tâche
delay_after Nombre Délai d'affichage indicatif après l'heure d'échéance de la tâche
submission_model_id UUID ID d'une fiche modèle
submissions array Tableau d'ID de fiches
user_id Nombre ou Null ID de l'utilisateur
recurrency Recurrency Voir ci-dessous

Récurrence journalière

Propriété Type Description
type Texte mettre comme valeur “daily”
interval Nombre Interval entre chaque tâche, minimum 1
days Objet Jours de la semaine (3 premières lettres des jours en anglais) avec les propriétés start pour l'heure de début et la propriété end pour la durée de la tâche en secondes
end Objet Objet avec une propriété type qui peut avoir comme valeur occurrence ou date, et une propriété value qui a comme valeur une date dans le cas d'un type date, un nombre dans le cas d'un type occurrence
POST /{app_short}/tasks HTTP/1.1
Content-Type: application/json

{
  "start_date": 1473890400,
  ...,
  "delay_after": 300,
  "recurrency": {
    "type": "weekly",
    "days": {
      "wed": {
        "start": "04:00",
        "end": 1800
      },
      "thu": {
        "start": "06:00",
        "end": 1800
      }
    },
    "end": {
      "type": "date",
      "value": 1475890400
    },
    "interval": 1
  }
}

Récurrence hebdomadaire

Les propriétés sont identiques à la récurrence journalière, cependant tous les jours de la propriété days ne sont pas obligatoires.

Modifier une tâche

Requête

Modifie une tâche

PUT /{app_short}/tasks/{task_id}

PUT /{app_short}/tasks/{task_id} HTTP/1.1
Content-Type: application/json

{
  "start_date": 1561450000,
  "due_date": 1561453600,
  "user_id": 5675,
  "duration": 3600,
  "delay_before": 0,
  "delay_after": 0
}

Propriétés

Propriété Type Description
start_date Date Date de début de la tâche (UNIX timestamp)
due_date Date Date d'échéance de la tâche (UNIX timestamp)
duration Nombre Durée de la tâche en secondes
delay_before Nombre Délai d'affichage indicatif en secondes avant le début de la tâche
delay_after Nombre Délai d'affichage indicatif en secondes après l'heure d'échéance de la tâche
user_id Nombre ou Null ID de l'utilisateur

Réponse

HTTP/1.1 200 OK
Content-Type: application/json
{
  "id": "14d8028a-b5ee-4a0e-8379-9fa7b174285c",
  "user_id": 5675,
  "duration": 3600,
  "delay_before": 0,
  "delay_after": 0,
  "created_at": 1561451262,
  "updated_at": 1561452662,
  "start_date": 1561450000,
  "due_date": 1561453600,
  "time_status": "late",
  "fill_status": "filled",
  "submission": {
    "created_at": 1561451250,
    "updated_at": 1561451262,
    "structure_id": 32583,
    "structure_version": 1,
    "task_id": "14d8028a-b5ee-4a0e-8379-9fa7b174285c",
    "channels": [],
    "user_id": 5675,
    "data_created_at": 1561451250,
    "data_updated_at": 1561451250,
    "id": "93dc11fc-b9e8-4d63-b860-79ebed0f4777",
    "items": {
      "date0": 1561543200,
      "date1": 1561546800
    },
    "previous_items": [],
    "settings": [],
    "submission_number": 9716177,
    "subscribers": []
  }
}

Supprimer une tâche

Supprime la tâche.

Requête

DELETE /{app_short}/tasks/{task_id} HTTP/1.1

DELETE /{app_short}/tasks/{task_id}

Paramètre Type Description
task_id UUID Identifiant de la tâche

Réponse

HTTP/1.1 204 No Content

Publipostages

Liste des templates par formulaire

Requête

Retourne la liste des templates de publipostage disponible pour un formulaire

GET /daxium-test/report_templates?structure=1213 HTTP/1.1

GET /{app_short}/report_templates?structure={structure_id}

Propriété Type Description
structure_id integer identifiant de la structure [0-9]+
HTTP/1.1 200 OK
Content-Type: application/json

{
    "templates": [
        {
          "id": 68,
          "name": "Gestion PHMR.xlsx",
          "listingMode": false,
          "templateEngine": "xlsxaspose"
        },
        {
          "id": 62,
          "name": "Gestion PHMR2.docx",
          "listingMode": false,
          "templateEngine": "docxopenxml"
        },
        {
          "id": 60,
          "name": "test 53 en.docx",
          "listingMode": false,
          "templateEngine": "docxopenxml"
        },
        {
          "id": 59,
          "name": "Gestion PHMR.docx",
          "listingMode": true,
          "templateEngine": "docxopenxml"
        }
    ],
    "total_count": 4,
    "total_pages": 1,
    "server_time": 1487251538
}

Réponse

La réponse est un tableau JSON “templates” contenant les informations de chaque template

Propriété Type Description
id integer identifiant
name string nom affiché
listingMode boolean statut du mode listing
templateEngine string moteur de génération de template

Liste des templates par fiche

Requête

Retourne la liste des templates de publipostage disponibles pour une fiche

GET /daxium-test/report_templates?submission=9641083e-4235-427d-90a8-4d46207d46c7 HTTP/1.1

GET /{app_short}/report_templates?submission{submission_id}

Propriété Type Description
submission_id GUID identifiant de la fiche [0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}
HTTP/1.1 200 OK
Content-Type: application/json

{
    "templates": [
        {
          "id": 68,
          "name": "Gestion PHMR.xlsx",
          "listingMode": false,
          "templateEngine": "xlsxaspose"
        },
        {
          "id": 62,
          "name": "Gestion PHMR2.docx",
          "listingMode": false,
          "templateEngine": "docxopenxml"
        },
        {
          "id": 60,
          "name": "test 53 en.docx",
          "listingMode": false,
          "templateEngine": "docxopenxml"
        },
        {
          "id": 59,
          "name": "Gestion PHMR.docx",
          "listingMode": true,
          "templateEngine": "docxopenxml"
        }
    ],
    "total_count": 4,
    "total_pages": 1,
    "server_time": 1487251538
}

Réponse

La réponse est un tableau JSON “templates” contenant les informations de chaque template

Propriété Type Description
id integer identifiant
name string nom affiché
listingMode boolean statut du mode listing
templateEngine string moteur de génération de template

Information d'un rapport de publipostage

Requête

Récuperer un rapport de publipostage par son identifiant

GET /daxium-test/reports/1846 HTTP/1.1

GET /{app_short}/reports/{{report_id}}

Propriété Type Description
report_id integer identifiant [0-9]+
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 1846,
    "status": "finished",
    "original_document": {
        "file_uuid": "17e66387-276d-49c5-a5dc-d609f7e1543d",
        "file_name": "133357-Gestion PHMR.docx"
    },
    "pdf_document": {
        "file_uuid": "",
        "file_name": ""
    },
    "errorMessage": ""
}

Réponse

La réponse est un objet JSON contenant les informations du rapport de publipostage

Propriété Type Description
id integer identifiant
status string statut
file_uuid UUID identifiant du fichier généré
file_name string nom du fichier généré
errorMessage string message d'erreur si disponible

Publipostages d'une fiche

Requête

Retourne la liste de tous les publipostages d'une fiche

GET /daxium-test/reports?submission=9641083e-4235-427d-90a8-4d46207d46c7 HTTP/1.1

GET /{app_short}/reports?submission={submission_id}&per_page={per_page}&page={page}&updated_since={updated_since}

Propriété Type Description
submission_id GUID identifiant de la fiche [0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}
per_page integer nombre de résultat par page. optionnel, valeur par défaut 10, valeur maximum 100
page integer numéro de la page à récuperer. optionnel
updated_since date Date filter to get pp updated after date provided. Optional.
HTTP/1.1 200 OK
Content-Type: application/json

{
    "reports": [
        {
            "id": 375,
            "status": "error",
            "original_document": {
                "file_uuid": "",
                "file_name": ""
            },
            "pdf_document": {
                "file_uuid": "",
                "file_name": ""
            },
            "errorMessage": "(-300) The remote server returned an error: (404) Not Found."
        },
        {
            "id": 1890,
            "status": "finished",
            "original_document": {
                "file_uuid": "17e66387-276d-49c5-a5dc-d609f7e1543d",
                "file_name": "133357-Gestion PHMR.docx"
            },
            "pdf_document": {
                "file_uuid": "",
                "file_name": ""
            }
        }
    ],
    "total_count": 2,
    "total_pages": 1,
    "server_time": 1487251538
}

Réponse

La réponse est un objet JSON “reports” contenant un tableau d'objet des rapports de publipostage

Propriété Type Description
reports array tableau d'objets
total_count integer nombre de résultat total
next_page integer numéro de la prochaine page
server_time date date du serveur

Fichier généré d'un rapport publipostage

Requête

Retourne le fichier généré d'un rapport de publipostage par son identifiant

GET /daxium-test/reports/1861/results/78669621-5cc9-40cd-a961-988da6102384 HTTP/1.1

GET /{app_short}/reports/{report_id}/results/{file_uuid}

Propriété Type Description
report_id integer identifiant [0-9]+
file_uuid UUID identifiant du fichier de publipostage généré [0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="Gestion PHMR.xlsx";, attachment; filename="Gestion PHMR.xlsx";

Réponse

Retourne le fichier généré par le publipostage

Lancer un publipostage

Requête

Lancer la génération d'un rapport de publipostage pour une fiche

POST /{app_short}/reports

POST /daxium-test/reports HTTP/1.1
Content-Type: application/json

{
  "template_id": 62,
  "submission_id": "9641083e-4235-427d-90a8-4d46207d46c7",
  "api_callback": "http://your.endpoint.com/report_callback/{publipostage_id}"
}
Propriété Type Description
template_id integer identifiant du template, obligatoire.
submission_id string identifiant de la fiche, obligatoire.
api_callback string URL à appeler lorsque le publipostage est généré, obligatoire.
header_name string nom d'en-tête à définir pour le callback, optionnel.
header_value string valeur d'en-tête à définir pour le callback, optionnel.

l'URL de callback est appelé en PUT après la génération du rapport. {publipostage_id} dans l'URL est remplacé par l'ID de publipostage correspondant. Les en-tête header_name et header_value sont valorisés seulement s'ils sont définis.

HTTP/1.1 200 OK
Content-Type: application/json
{
    "report_id": 1887
}

Réponse

La réponse est un objet JSON contenant l'identifiant du publipostage créé.

Propriété Type Description
report_id integer identifiant

Context

Ajouter une fiche au contexte

Requête

L'API POST /daxium-test/contexts/{submission_id} permet d'ajouter une fiche au contexte d'un utilisateur

POST /{app_short}/contexts/3163a2b2-fb3b-4802-9920-4c271abe519b HTTP/1.1
or
POST /{app_short}/contexts/3163a2b2-fb3b-4802-9920-4c271abe519b HTTP/1.1
Content-Type: application/json

{
  "user_id": 62
}

Propriété Type Description
submission_id GUID identifiant de la fiche [0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}

Si la proriété user_id est envoyée dans la requête POST, la fiche sera ajoutée au contexte de cet utilisateur. Sinon la fiche sera ajoutée au contexte utilisateur actuel.

HTTP/1.1 204 OK

Réponse

Page vide avec le code de réponse 204.

Retirer une fiche du contexte

Requête

Pour retirer une fiche d'un contexte utilisateur, il faut utiliser l'API DELETE /{app_short}/contexts/{submission_id}

DELETE /daxium-test/contexts/9641083e-4235-427d-90a8-4d46207d46c7 HTTP/1.1
Propriété Type Description
submission_id GUID identifiant de la fiche [0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}
HTTP/1.1 204 OK

Réponse

Page vide avec le code de réponse 204.

Retirer une fiche de tous les contextes utilisateurs

Requête

L'API DELETE /{app_short}/contexts/{submission_id}/allusers permet de retirer une fiche de tous les contextes utilisateurs

DELETE /daxium-test/contexts/9641083e-4235-427d-90a8-4d46207d46c7/allusers HTTP/1.1
Propriété Type Description
submission_id GUID identifiant de la fiche [0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}
HTTP/1.1 204 OK

Réponse

Page vide avec le code de réponse 204.

Souscriptions

Récuperer les souscriptions d'un compte

Requète

La liste des souscriptions associées à un compte sont disponible via l'API /subscriptions.

GET /subscriptions HTTP/1.1

Réponse

La réponse est toujours un tableau JSON avec la liste des instances disponibles.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "subscriptions": [
    {
      "start": 1483225200,
      "end": 1672527599,
      "users_max": {
        "web": 9999,
        "mobile": 9999
      },
      "id": "d4ea01d1-b18a-434d-90e4-1b939d7dba65",
      "name": "infinite",
      "sequence": 1,
      "active": true
    },
    {
      "start": 1514761200,
      "end": 1546297199,
      "users_max": {
        "web": 5,
        "mobile": 10
      },
      "id": "b1e3588f-70d7-409e-abf7-3634f9dab3a7",
      "name": "Renouvellement Daxium 2018",
      "sequence": 2,
      "active": true
    }
  ],
  "total_count": 2,
  "total_pages": 1,
  "server_time": 1496328911
}
Propriété Type Description
start int Date de début
and int Date de fin
users_max object nombre d'utilisateurs web et mobile maximums autorisés
id UUID identifiant
name string nom affiché
sequence int numéro séquentiel
active bool statut

Groupes

Récuperer les groupes applicatifs d'un vertical métier

Requète

La liste des groupes associés à un vertical métier est disponible via l'API /{app_short}/groups.

GET /daxium-test/groups HTTP/1.1

Réponse

La réponse est un objet JSON contenant un tableau des groupes disponibles.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "groups": [
    {
      "is_system": false,
      "id": 6,
      "name": "Group A",
      "description": "Group A"
    },
    {
      "is_system": false,
      "id": 7,
      "name": "Group B",
      "description": "Group B"
    }
  ],
  "total_count": 2,
  "total_pages": 1,
  "server_time": 1496329957
}
Propriété Type Description
is_system bool défini si le groupe est un groupe système
id int identifiant
name string nom visible du groupe
description string description renseignée par l'administrateur

Utilisateurs

Lister tous les utilisateurs

Requète

La liste de tous les utilisateurs est disponible via l'API /users.

GET /users HTTP/1.1

Réponse

La réponse est un tableau JSON avec la liste des utilisateurs.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "users": [
    {
      "subscription_id": "",
      "system_groups": [
        1
      ],
      "groups": [],
      "id": 1,
      "email": "superuser@daxium.com",
      "active": true,
      "first_name": "Super",
      "last_name": "User",
      "settings": {
        "locale": "fr"
      }
    },
    {
      "subscription_id": "d4ea01d1-b18a-434d-90e4-1b939d7dba65",
      "system_groups": [
        2
      ],
      "groups": [
        8
      ],
      "id": 3,
      "email": "mobile.user@daxium.local",
      "active": true,
      "first_name": "Mobile",
      "last_name": "User",
      "settings": {
        "locale": "fr"
      }
    },
    {
      "subscription_id": "b1e3588f-70d7-409e-abf7-3634f9dab3a7",
      "system_groups": [
        3
      ],
      "groups": [],
      "id": 4,
      "email": "web.user@daxium.local",
      "active": true,
      "first_name": "Web",
      "last_name": "User",
      "settings": {
        "locale": "fr"
      }
    }
  ],
  "total_count": 3,
  "total_pages": 1,
  "server_time": 1496331477
}
Propriété Type Description
subscription_id string identifiant de la souscription rattaché à l'utilisateur
system_groups array tableau de int contenant les identifiants des groupes système
groups array tableau de int contenant les identifiants des groupes applicatifs
id int identifiant
email string email
active bool statut actif/inactif
first_name string prénom
last_name string nom
settings JSON object objet JSON contenant un certain nombre de paramètre supplémentaire tel que la langue de l'utilisateur

Récuperer l'utilisateur courant

Requète

L'utilisateur courant est disponible via l'API /users/me.

GET /users/me HTTP/1.1

Réponse

La réponse est un objet JSON contenant l'utilisateur courant et le compte client de l'utilisateur courant.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "user": {
    "created_at": 1495442958,
    "updated_at": 1496332388,
    "id": 2,
    "email": "user.mobile@daxium.local",
    "email_canonical": "user.mobile@daxium.local",
    "active": true,
    "first_name": "User",
    "last_name": "Mobile",
    "last_login_mobile_at": "2017-06-01T17:53:08+0200",
    "settings": {
      "locale": "fr"
    }
  },
  "company": {
    "created_at": 1495201223,
    "updated_at": 1495201223,
    "id": 1,
    "title": "Daxium"
  }
}

Objet user

Propriété Type Description
subscription_id string identifiant de la souscription rattaché à l'utilisateur
system_groups array tableau de int contenant les identifiants des groupes système
groups array tableau de int contenant les identifiants des groupes applicatifs
id int identifiant
email string email
active bool statut actif/inactif
first_name string prénom
last_name string nom
settings JSON object objet JSON contenant un certain nombre de paramètre supplémentaire tel que la langue de l'utilisateur

Objet company

Propriété Type Description
created_at int timestamp de date de création
updated_at int timestamp de date de dernière modification
id int identifiant
title string nom affiché

Envoyer une clef de push

Requète

L'API /users/pushkey permet d'envoyer une clef de push.

POST /users/pushkey HTTP/1.1
Content-Type: application/json

{
  "id": "uniqueDeviceId",
  "key": "a key",
  "os": "android",
  "os_version": "7.0",
  "app_version": "1.7.1",
  "name": "My phone"
}
Propriété Type Description
id string identifiant unique du device
key string clef
os string os du device (Android ou iOS)
os_version string version de l'os
app_version string version de l'application Daxium-Air
name string nom du device

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{}

Lister les utilisateurs d'un vertical métier

Requète

La liste des utilisateurs d'un vertical métier est disponible via l'API /{app_short}/users.

GET /daxium-test/users HTTP/1.1

Réponse

La réponse est un tableau JSON avec la liste des utilisateurs.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "users": [
    {
      "subscription_id": "d4ea01d1-b18a-434d-90e4-1b939d7dba65",
      "system_groups": [
        2
      ],
      "groups": [
        8
      ],
      "id": 3,
      "email": "mobile.user@daxium.local",
      "active": true,
      "first_name": "Mobile",
      "last_name": "User",
      "settings": {
        "locale": "fr"
      }
    },
    {
      "subscription_id": "b1e3588f-70d7-409e-abf7-3634f9dab3a7",
      "system_groups": [
        3
      ],
      "groups": [],
      "id": 4,
      "email": "web.user@daxium.local",
      "active": true,
      "first_name": "Web",
      "last_name": "User",
      "settings": {
        "locale": "fr"
      }
    }
  ],
  "total_count": 2,
  "total_pages": 1,
  "server_time": 1496331477
}
Propriété Type Description
subscription_id string identifiant de la souscription rattaché à l'utilisateur
system_groups array tableau de int contenant les identifiants des groupes système
groups array tableau de int contenant les identifiants des groupes applicatifs
id int identifiant
email string email
active bool statut actif/inactif
first_name string prénom
last_name string nom
settings JSON object objet JSON contenant un certain nombre de paramètre supplémentaire tel que la langue de l'utilisateur

Créer un utilisateur

Requète

L'API /{app_short}/users permet de créer un utilisateur.

POST /daxium-test/users HTTP/1.1
Content-Type: application/json

{
    "username": "mynewuser@daxium.com",
    "active": true,
    "firstName": "Daxium",
    "lastName": "New user",
    "locale": "fr",
    "subscription_id": "b1e3588f-70d7-409e-abf7-3634f9dab3a7",
    "system_groups": [2],
    "groups": [],
    "plainPassword": {
        "first": "MySecurePassword123",
        "second": "MySecurePassword123"
    }
}
Propriété Type Description
username string adresse email de l'utilisateur
active bool statut actif/inactif
firstName string prénom de l'utilisateur
lastName int nom de l'utilisateur
locale string langue de l'utilisateur (fr ou en)
subscription_id string UUID de la souscription à rattacher à l'utilisateur. La liste peut être récuperée via l'API /subscriptions
system_groups array tableau d’int. 1 pour administrateur, 2 pour mobile, 3 pour web.
groups array tableau d’int. La liste peut être récupérée via l'API /{app_short]/groups}
plainPassword JSON object les clefs first et second sont obligatoires, leurs valeurs doivent être identique. Règles de sécurité à respecter: 1 majuscule minimum, 1 minuscule minimum, 1 chiffre minimum, 8 caractères minimum

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
  "subscription_id": "b1e3588f-70d7-409e-abf7-3634f9dab3a7",
  "system_groups": [
    2
  ],
  "groups": [],
  "id": 5,
  "email": "mynewuser@daxium.com",
  "active": true,
  "first_name": "Daxium",
  "last_name": "New user",
  "settings": {
    "locale": "fr"
  }
}
Propriété Type Description
subscription_id string identifiant de la souscription rattaché à l'utilisateur
system_groups array tableau de int contenant les identifiants des groupes système
groups array tableau de int contenant les identifiants des groupes applicatifs
id int identifiant
email string email
active bool statut actif/inactif
first_name string prénom
last_name string nom
settings JSON object objet JSON contenant un certain nombre de paramètre supplémentaire tel que la langue de l'utilisateur

Récuperer un utilisateur

Requète

L'API /{app_short}/users/{user_id} permet de récuperer un utilisateur par son identifiant.

GET /daxium-test/users/5 HTTP/1.1

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
  "subscription_id": "b1e3588f-70d7-409e-abf7-3634f9dab3a7",
  "system_groups": [
    2
  ],
  "groups": [],
  "id": 5,
  "email": "mynewuser@daxium.com",
  "active": true,
  "first_name": "Daxium",
  "last_name": "New user",
  "settings": {
    "locale": "fr"
  }
}
Propriété Type Description
subscription_id string identifiant de la souscription rattaché à l'utilisateur
system_groups array tableau de int contenant les identifiants des groupes système
groups array tableau de int contenant les identifiants des groupes applicatifs
id int identifiant
email string email
active bool statut actif/inactif
first_name string prénom
last_name string nom
settings JSON object objet JSON contenant un certain nombre de paramètre supplémentaire tel que la langue de l'utilisateur

Mettre à jour un utilisateur

Requète

L'API /{app_short}/users/{user_id} permet de mettre à jour un utilisateur.

PATCH /daxium-test/users/5 HTTP/1.1

{
    "username": "mynewuser@daxium.com",
    "active": true,
    "firstName": "Daxium 2",
    "lastName": "New user 2",
    "locale": "fr",
    "subscription_id": "b1e3588f-70d7-409e-abf7-3634f9dab3a7",
    "system_groups": [2],
    "groups": [],
    "plainPassword": {
        "first": "MySecurePassword123",
        "second": "MySecurePassword123"
    }
}
Propriété Type Description
username string adresse email de l'utilisateur
active bool statut actif/inactif
firstName string prénom de l'utilisateur
lastName int nom de l'utilisateur
locale string langue de l'utilisateur (fr ou en)
subscription_id string UUID de la souscription à rattacher à l'utilisateur. La liste peut être récuperée via l'API /subscriptions
system_groups array tableau d’int. 1 pour administrateur, 2 pour mobile, 3 pour web.
groups array tableau d’int. La liste peut être récupérée via l'API /{app_short]/groups}
plainPassword JSON object les clefs first et second sont obligatoires, leurs valeurs doivent être identique. Règles de sécurité à respecter: 1 majuscule minimum, 1 minuscule minimum, 1 chiffre minimum, 8 caractères minimum

Réponse

HTTP/1.1 200 OK
Content-Type: application/json

{
  "subscription_id": "b1e3588f-70d7-409e-abf7-3634f9dab3a7",
  "system_groups": [
    2
  ],
  "groups": [],
  "id": 5,
  "email": "mynewuser@daxium.com",
  "active": true,
  "first_name": "Daxium 2",
  "last_name": "New user 2",
  "settings": {
    "locale": "fr"
  }
}
Propriété Type Description
subscription_id string identifiant de la souscription rattaché à l'utilisateur
system_groups array tableau de int contenant les identifiants des groupes système
groups array tableau de int contenant les identifiants des groupes applicatifs
id int identifiant
email string email
active bool statut actif/inactif
first_name string prénom
last_name string nom
settings JSON object objet JSON contenant un certain nombre de paramètre supplémentaire tel que la langue de l'utilisateur