Publication de courbes de tarage
================================

Ce web-service permet de publier des courbes de tarage.


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

========= =============
Paramètre Valeur
========= =============
Route     courbestarage
Méthode   POST
========= =============

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

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

Un des deux paramètres cdstations et cdcourbes est obligatoire.

========== ============================ ========= ===
Nom        Description                  Type      O/F
========== ============================ ========= ===
cdstations liste de codes station       list(str) O/F
dtdebut    date de début                datetime  F
dtfin      date de fin                  datetime  F
dtmaj      date de mise à jour          datetime  F
libelle    libellé de la courbe         str       F
statut     statut des  courbes          int       F
jaugeage   publication des jaugeages    bool      F
cdcourbes  liste des codes de courbes   list(str) O/F
historique publication de l'historique  bool      F
========== ============================ ========= ===

jaugeage
^^^^^^^^

Si le paramètre jaugeage est renseigné à true, alors l'authentification est obligatoire.

Paramètres dtdebut et dtfin
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Le web-service renvoie les courbes dont les périodes intersecte la plage [dtdebut-dtfin].

Paramètre historique
^^^^^^^^^^^^^^^^^^^^

Si le paramètre historique est défini et égale à 'false', le webservice ne renvoie que les périodes
d'utilisation actives.

statut
^^^^^^

Par défaut, le web-service ne renvoie pas les courbes de travail (statut=12).


Droit de publication
--------------------

Les droits de publication appliqués pour ce service web sont ceux liés aux stations hydrométriques
passées en paramètre (paramètre cdstations).

La publication des courbes de tarage dont le statut est à 12 (travail),
est limité aux contacts ayant un rôle POLE2 sur le station.

Dans tous les autres cas ce sont les droits suivants qui s'appliquent:

Pour une station hydrométrique publique (droit de publication = 10), n'importe quel utilisateur peut
publier les courbes de station de la station.

L'authentification est obligatoire pour les autres stations.


Dans le cas d'une station restreinte, à hauteur publique ou à débit public, le contact correspondant
à l'utilisateur authentifié doit avoir le profil institutionnel ou être lié à l’entité avec
n’importe quel rôle pour pouvoir publier les courbes de tarage de la station.

Et dans le cas d'une station privée, ou au droit public sans courbe de
tarage(11), le contact doit être lié à l’entité avec n’importe quel
rôle pour pouvoir publier les courbes de tarage de la station.

Zone de publication
^^^^^^^^^^^^^^^^^^^

En mode non connecté, la courbe de tarage n'est pas publié dans son intégralité.

La courbe est limitée à sa zone de publication si elle est défini.

Des interpolations de points sont réalisés au niveau des limites inférieures et supérieures de la
zone de publication.

Commentaire privé d'une courbe de tarage
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Le droit de publication d’un commentaire privé n’est pas lié au droit de
publication de la courbe de tarage.

Il faut posséder un droit sur la station pour que le commentaire privé figure dans le réponse de
sortie du web-service.

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

Le web-service renvoie un json hydrometrie contenant les courbes de tarage à publier.

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

Donnees
^^^^^^^

L'objet Donnees contiendra les propriétés CourbesTarage et Jaugeages.

CourbesTarage est une liste non vide d'objets CourbeTarage.
Jaugeages est une liste non vide d'objets Jaugeage.

CourbeTarage
^^^^^^^^^^^^

L'objet CourbeTarage contiendra les propriétés suivantes:

- CdCourbeTarage
- LbCourbeTarage
- TypCourbeTarage
- DtCreatCourbeTarage
- LimiteInfCourbeTarage
- LimiteSupCourbeTarage
- LimiteInfPubCourbeTarage
- LimiteSupPubCourbeTarage
- DnCourbeTarage
- AlphaCourbeTarage
- BetaCourbeTarage
- ComCourbeTarage
- CdStationHydro
- CdContact
- PivotsCourbeTarage : liste d'objets PivotCourbeTarage
- PeriodesUtilisationCourbeTarage : liste d'objets PeriodeUtilisationCourbeTarage
- DtMajCourbeTarage
- ComPrivCourbeTarage


PivotCourbeTarage
^^^^^^^^^^^^^^^^^

Propriété de l'objet PivotCourbeTarage:

- HtPivotCourbeTarage
- QPivotCourbeTarage
- VarAPivotCourbeTarage
- VarBPivotCourbeTarage
- VarHPivotCourbeTarage

PeriodeUtilisationCourbeTarage
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Propriétés de l'objet PeriodeUtilisationCourbeTarage:

- DtDebPériodeUtilisationCourbeTarage
- DtFinPériodeUtilisationCourbeTarage
- EtatPériodeUtilisationCourbeTarage
- HistosActivPeriod : liste d'objets HistoActivPeriod

HistoActivPeriod
^^^^^^^^^^^^^^^^

Propriétés de l'objet HistoActivPeriod

- DtActivationHistoActivPeriod
- DtDesactivationHistoActivPeriod

Jaugeage
^^^^^^^^

Propriété de l'objet Jaugeage

- CdJaugeage
- DebitJaugeage
- DtDebJaugeage
- DtFinJaugeage
- SectionMouilJaugeage
- PerimMouilleJaugeage
- LargMiroirJaugeage
- ModeJaugeage
- ComJaugeage
- VitesseMoyJaugeage
- VitesseMaxJaugeage
- VitesseMaxSurfaceJaugeage
- CdSiteHydro
- HauteursJaugeage- : liste d'objets HauteurJaugeage

HauteurJaugeage
^^^^^^^^^^^^^^^

Propriété de l'objet HauteurJaugeage

- CdStationHydro
- SysAltiStationJaugeage
- CoteRetenueStationJaugeage
- CoteDebutStationJaugeage
- CoteFinStationJaugeage
- DnStationJaugeage
- DistanceStationJaugeage
- StationFille: objet StationFille

StationFille
^^^^^^^^^^^^

L'objet StationFille contient une unique propriété: CdStationHydro

Exemple
^^^^^^^

.. code-block:: json
   :caption: Courbes de tarage au format json

   {
     "Scenario": {},
     "Donnnees": {
       "CourbesTarage": [
         {
           "CdCourbeTarage": 0,
           "LbCourbeTarage": "Lb",
           "TypCourbeTarage": 4,
           "DtCreatCourbeTarage": "2010-01-01T00:00:00",
           "LimiteInfCourbeTarage": 10,
           "LimiteSupCourbeTarage": 90,
           "LimiteInfPubCourbeTarage": 20,
           "LimiteSupPubCourbeTarage": 80,
           "DnCourbeTarage": 174,
           "AlphaCourbeTarage": 1.2,
           "BetaCourbeTarage": 1.5,
           "ComCourbeTarage": "Cmnt",
           "CdStationHydro": "A000000000",
           "CdContact": "0",
           "PivotsCourbeTarage": [
             {
               "HtPivotCourbeTarage": 50,
               "VarAPivotCourbeTarage": 1,
               "VarBPivotCourbeTarage": 1,
               "VarHPivotCourbeTarage": 1
             },
             {
               "HtPivotCourbeTarage": 100,
               "VarAPivotCourbeTarage": 0.005,
               "VarBPivotCourbeTarage": 1.08,
               "VarHPivotCourbeTarage": 159
             },
           ],
           "PeriodesUtilisationCourbeTarage": [
             {
               "DtDebPériodeUtilisationCourbeTarage": "2010-01-01T00:00:00",
               "DtFinPériodeUtilisationCourbeTarage" "2020-01-01T00:00:00",
               "EtatPériodeUtilisationCourbeTarage": 8,
               "HistosActivPeriod": [
                 {
                   "DtActivationHistoActivPeriod": "2015-01-01T00:00:00",
                   "DtDesactivationHistoActivPeriod": "2018-01-01T00:00:00"
                 }
               ]
             }
           ],
           "DtMajCourbeTarage": "2016-01-01T00:00:00",
           "ComPrivCourbeTarage": "Cmnt privé"
         }
       ],
       "Jaugeages": [{}]
     }
   }
