Web-service rechercherContributeur
==================================

Ce web-service permet de rechercher des intervenants et/ou des contacts.

Paramètres HTTP
---------------

========= =======================
Paramètre Valeur
========= =======================
Route     recherche/contributeurs
Méthode   POST
========= =======================

Paramètres
----------

Les paramètres doivent être transmis dans le contenu de la requête au format format JSON.

============= ============================ ============ ===
Nom           Description                  Type         O/F
============= ============================ ============ ===
contributeurs Contributeurs retournés      2 caractères F
retour        type de retour               2 caractères F
filtres       filtres de recherche         Json         O
============= ============================ ============ ===

Paramètre contributeurs
^^^^^^^^^^^^^^^^^^^^^^^

Le paramètre contributeurs est une chaîne de caractères dont le premier caractère permet de
rechercher des intervenants, le deuxième permet de rechercher des contacts.

Chiffre des dizaines : 0 (pas de recherche d’intervenants) 1 :
(recherche d’intervenants) Chiffre des unités : 0 (pas de recherche de
contacts), 1 (recherche de contacts).

Si le paramètre contributeurs n'est pas défini, il prend la valeur par défaut '11' et le web-service
 retourne des intervenants et des contributeurs.

Exemples :

======================= ==================================
Valeur de contributeurs Commentaire
======================= ==================================
10                      Recherche sur les intervenants
11                      Recherche intervenants et contacts
01                      Recherche contacts
======================= ==================================

Lorsque contributeur=’01’, les intervenants sans contacts ne sont pas retournés. Lorsque
contributeur=10 ou 11 et que l’on filtre parmi les contacts, les intervenants sans contacts ne sont
pas retournés. En l’absence de filtre sur les contacts et lorsque contributeurs=11 ou 01, l’ensemble
des contacts des intervenants filtrés sont retournés.

Paramètre retour
^^^^^^^^^^^^^^^^

Le paramètre retour est une chaîne de caractères dont le premier caractère permet de spécifier
les attributs des intervenants, le deuxième, les attributs des contacts.

Retour code
===========

Valeur: 0
Retourne uniquement les codes des entités,

En l’occurrence uniquement les codes intervenant et contact

Retour court
============

Valeur: 1

CdContact, NomContact, pour les contacts
CdIntervenant, NomIntervenant et MnIntervenant pour lesintervenants

Retour Hydroportail
===================

Valeur: 2

CdContact, NomContact, PrenomContact, ProfilAdmin, ProfilContact, CdProfilAdminLocal et
DtDesactivationContact pour les contacts.

CdIntervenant, NomIntervenant et MnIntervenant SiteWebComplementIntervenant et Code Intervenant père
pour intervenant

Retour long
===========

Valeur: 3

Retourne toutes les balises filles des intervenants et contacts sans les sous-arborescences sans les rôles sur les zones hydro.

**Influence du paramètre sur la taille de la réponse**

Recherche de l'ensemble des contacts actifs

=========== ==================
Code retour Taille en kilo car
=========== ==================
00          46
10          61
20          68
30          134
11          100
22          127
33          395
=========== ==================

Contenu de la requête HTTP
--------------------------

La requête HTTP doit contenir un json hydrométrie contenant des filtres de recherche de
contributeurs.

Json de recherche
^^^^^^^^^^^^^^^^^

Le JSON d'entrée est validé par le schéma suivant:
:download:`../../../jsonschema/rechercherContributeur.json`.

* L'objet de recherche doit contenir les deux attributs operation et filtres
* operation doit prendre une des valeurs suivantes: INTERSECTION OU UNION
* filtres doit être une liste non vide d'objets Filtre ou SousFiltres
* Filtre doit contenir les propriétés filtre et valeur et éventuellement les propriétés inverse et
  strict. 
* SousFiltres doit contenir une propriété filtre et la propriété sousfiltres.
* La propriété sousFiltres doit être une liste non vide d'objets Filtre

web-service rechercherIntervenantContact. Les filtres suivants ont été
ajoutés :

-  DateMajContributeur : derniers contacts ou intervenants mis à jour.
-  MelContact : filtre sur les adresses mail des contacts
-  AliasContact : filtre sur les alias des contacts
-  NomPrenomContact : filtre sur le prénom et le nom du contact.

Opérateurs de recherche
~~~~~~~~~~~~~~~~~~~~~~~

=================================== ====== ============= ========================================================
Type de paramètre                   strict opérateur     Commentaire
=================================== ====== ============= ========================================================
Texte                               false  ~\*           Recherche par expression régulière insensible à la casse
Texte                               true   ilike         Recherche strict **insensible** à la casse
Code d'entité (site, station, zone)        ilike param % Commence par
Date                                       >=           
CdContact, Cdintervenant                   =            
=================================== ====== ============= ========================================================

Les filtres :
-------------

Filtre portant sur les intervenants et les contacts
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

DateMajContributeur retourne les derniers contacts ou intervenants récemment mis à jour.

Filtre intervenant
~~~~~~~~~~~~~~~~~~

========================= =========== ========= ================================================
Filtre                    Type        attributs Commentaire
========================= =========== ========= ================================================
NomIntervenant            Texte                 filtre sur le nom ou mnemo des intervenants
CdIntervenant             Texte                 filtre par code intervenant **recherche strict**
CPIntervenant             Code postal           recherche commence par
DateMajIntervenant        Horodate              Filtre sur les intervenants récemment mis à jour
VilleIntervenant          Texte                
PaysComplementIntervenant Texte                
========================= =========== ========= ================================================

Filtres contacts
^^^^^^^^^^^^^^^^

============================================== ============== =============== ==============================================================================================================================================
Filtre                                         Type           attributs       Commentaire
============================================== ============== =============== ==============================================================================================================================================
CdContact                                      Texte                          Filtre sur le code du contact **Recherche strict**
NomContact                                     Texte                          filtre sur les noms des contacts
PrenomContact                                  Texte                          filtre sur les prénoms des contacts
NomPrenomContact                               Texte                          filtre sur le nom et le prénom du contact.
NomContact et PrenomContact                                                   Les deux balises filles NomContact et PrenomContact sont obligatoires.
                                                                              Ce filtre permet de réaliser la recherche : (nom = et prenom= ) ou alias= ou mel =
AliasContact                                   Texte                          Filtre sur les alias
MelContact                                     Texte                          Filtre sur les adresses mail
CpContact                                      Texte          Inverse         Filtre sur le code postal
                                                                              Recherche de type commence par.
                                                                              CpContact: 31 retourne les contacts du département (Haute-Garonne).
VilleContact                                   Texte          Inverse, strict Filtre sur la ville du contact
PaysContact                                    Texte (2 cars)                 Filtre sur le pays
ProfilContact                                  Texte (3 cars)                 Filtre sur le profil des contacts.
                                                                              Valeurs attendues:
                                                                              000,
                                                                              001 (inst),
                                                                              011 (inst+mod)
                                                                              111 (admin nat)
ProfilAdminLocal/CdProfilAdminLocal            Texte                          Filtre sur des rôles sur des zones hydro
ProfilAdminLocal/CdZoneHydro                   Texte                          Filtre sur des rôles sur des zones hydro
ContactActif                                   Booléen                        Par défaut le web-service retourne l'ensemble des contacts.
                                                                              ContactActif=true ne retourne que les contacts actifs.
                                                                              ContactActif=false retourne les contacts non actifs
RolContactSiteHydro/CdSiteHydro                Texte                          Filtre sur des rôles sur des sites hydro
                                                                              Recherche commence par
RolContactSiteHydro/RoleContactSiteHydro       Texte                          Filtre sur des rôles sur des sites hydro
RolContactStationHydro/CdStationHydro          Texte                          Filtre sur des rôles sur des stations hydro
                                                                              Recherche commence par
RolContactStationHydro/RoleContactStationHydro Texte                          Filtre sur des rôles sur des stations hydro
RolContactSiteMeteo/CdSiteMeteo                Texte                          Filtre sur des rôles sur des sites météo
                                                                              Recherche commence par
RolContactSiteMeteo/RoleContactSiteMeteo       Texte                          Filtre sur des rôles sur des sites météo
DtDerniereConnexion                            Horodate                       Filtre sur les derniers contacts s’étant connectés à la PHyC
DateMajContact                                 Horodate                       Filtre sur les derniers contacts mis en base ou mise à jour
============================================== ============== =============== ==============================================================================================================================================

Réponse du web-service
----------------------

Le web-service renvoie un json hydrometrie contenant les contributeurs recherchés.

Le json hydrométrie contient les deux propriétés Scenario et RefHyd.

L'object RefHyd contiendra l'unique propriété Intervenants qui sera une liste non vide d'objets
Intervenant.
