--- 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 :::