---
# System prepended metadata

title: "ERA x Protools for QV end-points : interfaçage avec Cocorico \U0001F414"
tags: ["\U0001F414 construction cocorico \U0001F414", ' Protools']

---

---
tags: 🐔 construction cocorico 🐔, Protools
---

# ERA x Protools for QV end-points : interfaçage avec Cocorico 🐔 

## Get UES Global x enquete /api/{campaign}/survey-units

:new: attribut dans le contact :
    - **externalId**: sert à identifier d'un point de vue métier un contact et permet de faire le lien entre un contact SSM/DARES/autre et le contact présent dans la plateforme.

```json
{
    "content":[
        {
            "idSU": "1231234544", 
            "idPartition": "LOT_1",  // LOT_1 doit être cohérent avec celui créé dans Protools
            "contacts": [
                {"externalId":"ABCD", "idec": "peut être null"},
                {"externalId": "EFGH", "idec": "peut être null"}
            ]
        },
        {
            "idSU": "1231234545", 
            "idPartition": "LOT_2",  // LOT_1 doit être cohérent avec celui créé dans Protools
            "contacts": [
                {"externalId":"ABCD", "idec": "peut être null"},
                {"externalId": "EFGH", "idec": "peut être null"}
            ]
        }
    ]
}
```

### Actions Protools

:::warning
:warning: L'identifiant "idPartition" existe déjà dans Protools (créé par humain avant l'intégration de l'échantillon, il ajoute également quel modèle de questionnaire est associé à la partition)

**Contact**

- Si idec -> il l'existe déjà, donc on ne crée pas de contact
- Sinon on créer un contact avec externalId -> on récupère son Idec qu'on l'associe quelque part avec externalId pour le lier à contact réel.
(Table d'assocication temporaire externalId <-> idec)
:::



## Get Ue Unitaire /api/{campaign}/survey-units/{idSU}

Presque Passe plat 

:::warning
**Attention** 

Liste des variables à valoriser pour chaque UE:
- questionning.questionnaireId : définit par l'utilisteur "Dans telle partition il y aura tel model"
- pilotage.model : définit par l'utilisteur "Dans telle partition il y aura tel model"
- pilotage.contacts.idec : seulement si absent :
    - absent :  on le valorise grâce à la table de passage (externalId <-> idec)
    - présent : rien à faire

L'objet suivant est donc à **valoriser** potentiellement pour chaque appel unitaire
:::

```json
{
    "questionning" :{
      "comment": {},
      "data": {
          "EXTERNAL":{
              "externe_dans_boucle": [
                  null,
                  "youhou",
                  null
              ]
          },
          "COLLECTED":{},
          "CALCULTATED":{}
      },
      "id": "string",
      "personalization": {
          "whoAnswer1": "L'entreprise bidule chouette 1", // règle de calcul dans un 2nd temps porté par Protools ?
          "whoAnswer2": "L'entreprise bidule chouette 2",
          "whoAnswer3": "L'entreprise bidule chouette 3"
      },
      "questionnaireId": "model-aqv-2022", // à ajouter par Protools car définit par l'utilisteur "Dans telle partition il y aura tel model"
      "stateData": {}
    },
    
    "pilotage" : {
    
        "model":"model-aqv-2022" // à ajouter par Protools car définit par l'utilisteur "Dans telle partition il y aura tel model"
        "idPartition":"AQV-2023-X00-01",

        "surveyUnit":{
            "id":"unique",
            "identificationCode" : "SIRET !!!", // identificationCode
            "address":{
                ....
            }
        },

        "contacts":[
            {
                "externalId":"AQV_ABCD",
                "idec": "sdkfjds" // à ajouter par Protools
                "isMain": ""
                "address":{ 
            }
                // contactsEvents à créer automatiquement
            }
        ],
    }
}
```

## Communications

:::info
- Pour savoir à quel contact envoyé les courriers/mails, on intérroge Coleman-Pilotage pour savoir qui est le contact principal.

- A quel échance peut-on créer le end-point pilotage
    - __/api/survey-units/{id}/main-contact__ (à challenge avec Betty et Nicolas T)

- Ajouter un endpoint pour savoir si une UE d'une campagne est à relancer (true/false) => cf ce qui a été fait sur ColemanV1
:::
