# Introduction

## Liens utiles
[swagger du projet](/api/swagger/index.html)

[changelog](/api/dmo/changelog)

[ancien changelog](/api/dmo/old-changelog)

## Environnements

### Front :
PROD :  [https://al-in.fr](https://al-in.fr)

PPROD :  [https://al-in-preprod.be-idys.com/](https://al-in-preprod.be-idys.com/)

FORMATION CERFA v4 :  [https://al-in-cerfav4-formation.be-idys.com/](https://al-in-cerfav4-formation.be-idys.com/)

Recette2 :  [https://al-in-cerfav4-rcc.be-idys.com](https://al-in-cerfav4-rcc.be-idys.com)

MULTIRES :  [https://al-in-multires-rcc.be-idys.com/](https://al-in-multires-rcc.be-idys.com/)

RCC :  [https://als-hermes-entreprise-rec.be-idys.com/](https://als-hermes-entreprise-rec.be-idys.com/)

### Environnement API :
   PROD :  [http://api.al-in.fr/admin/thresholds](http://api.al-in.fr/admin/thresholds)

   PPROD :  [https://als-hermes-demo-api.be-idys.com](https://als-hermes-demo-api.be-idys.com)

   FORMATION CERFA V4 :  [https://api-cerfav4-formation.be-idys.com/dashboard](https://api-cerfav4-formation.be-idys.com/dashboard)

   Recette 2 :  [https://api-cerfav4-rcc.be-idys.com/users/sign_in](https://api-cerfav4-rcc.be-idys.com/users/sign_in)

   MULTIRES :  [https://api-multires-rcc.be-idys.com/](https://api-multires-rcc.be-idys.com/)

   RCC :  [https://als-hermes-scoring-rec.be-idys.com](https://als-hermes-scoring-rec.be-idys.com)

## Url GED

[https://ged-test.dev.hermes.openstack.local](https://ged-test.dev.hermes.openstack.local)

## Utilitaires de recherche

### Utilitaire de tri

Pour trier un retour dans notre application, utilisez le paramètre de recherche « sort » :

	?sort[champ1]=-1&sort[champ2]=1 …

La valeur « -1 » demande un tri décroissant, la valeur « 1 » demande un tri croissant.

Par exemple, pour trier sur la date de création de manière décroissante (du plus récent au plus ancien) :

	?sort[creation_date]=-1

###  Utilitaires de restriction logique

À votre disposition - pour tous les champs qui peuvent être recherchés sur tous les modèles, les opérateurs logiques suivants :

####  De grandeur

 - $gt : strictement plus grand que
 - $gte : plus grand ou égal à
 - $lt : strictement plus petit que
 - $lte : plus petit ou égal à

#### D’équité / d’iniquité

 - $ne : n'est pas 
 - $nin : n’est pas contenu dans 
 - $eq : est exactement 
 - $in : est contenu dans

#### D’expression régulière

 - $regex : avec une expression régulière sans les « / » de début et de
   fin

#### D'opération logique

 - **$or** et **$and** : une liste de listes associatives, chacune étant un nouveau filtre acceptant toutes les options précédement citées

    ex : ?$or[][field1]=value1&$or[][field2]=value2

équivaut à :

    {
      "$or": [
        {
          "field1": "value1",
          "field2": "value2
        }
      ]
    }

Il est aussi possible d'utiliser des index pour scinder les éléments de liste :

    ex: ?$or[0][field1]=value1&$or[1][field2]=value2

équivaut à :

    {
      "$or": [
        { "field1": "value1" },
        { "field2": "value2" }
      ]
    }

#### Complément d'info :
Ces opérateurs sont cumulables.

Ils s’utilisent de la façon suivante dans une requête :			  

    ?champ1[operateur1]=value&champ2[operateur2]=value&champ1[operateur2]=value …

L’exemple : 

    ?created_at[$lt]=2018-03-12T22:30&is_active[$ne]=true

Veut dire : _qui a été créé avant le 12 mars 2018 à 22h30 non inclue (strictement plus petit que) et qui n’est pas actif._

Exception faite sur les paramètres $in et $nin qui n’acceptent que des liste donc :

    ?title[$in][]=titre1&title[$in][]=titre2&status[$nin][]=PRET&status[$nin][]=PARTEZ

Veut dire : _qui a un titre contenue dans **[titre1, tritre2]** et un statut non contenu dans **[PRET, PARTEZ]**_

**ATTENTION:** *Si deux critères envoyés sont contradictoires il n’y aura aucun résultat.*
