# Communications Pearl/Queen Récapitulatif des communications | Id | Expéditeur | Destinataire | Objectif / message | | --- | ---------- | ------------ | ------------------------------------------ | | 1 | Pearl | Queen | Synchroniser Queen | | 2 | Pearl | Queen | Ouvrir Queen selon un contexte | | 3 | Pearl | Queen | HealthCheck | | 4 | Queen | Pearl | Synchronisation terminée (succès ou échec) | | 5 | Queen | Pearl | Questionnaire démarré | | 6 | Queen | Pearl | Questionnaire complété à 100% | | 7 | Queen | Pearl | Demande de fermeture de Queen | | 8 | Queen | Pearl | Retour healthCheck | 5-6: envoyer l'évènement dès qu'il survient. Pas d'évènement mixte. Question : un questionnaire est marqué comme terminé, l'enquêteur ## De Pearl à Queen ### 1) Synchronisation Pour déclencher la synchronisation de Queen, Pearl envoie un évènement à Queen : postMessage ``` message = { type : 'PEARL', command:'SYNCHRONIZE' } ``` ### 2) Ouverture d'un questionnaire Pour déclencher l'ouverture de Queen dans un certain contexte, l'application Pearl communique le context via l'url : exemple : http://pearl.insee.fr/queen/survey-unit/123 Redirect par Queen -> http://pearl.insee.fr/queen/questionnaire/simpsons/survey-unit/123 "simpsons" récupére par Queen (l'info est dans survey-unit) "simpsons" est l'id de questionnaire (pas de campagne) - queen ouvre le questionnaire "simpsons" avec les donnnées de l'unitée enquêtées "123" Pas de message dans ce cas. ### 3) HealthCheck Pour vérifier si Queen est bien embarqué dans Pearl postMessage ``` message = { type : 'PEARL', command:'HEALTH_CHECK' } ``` ## De Queen à Pearl ### 4) Synchronisation terminée Pour notifier que la synchronisation de Queen est terminée (avec le bilan), Queen envoie un évènement à Pearl : postMessage ``` message = { type : 'QUEEN', command : 'UPDATE_SYNCHRONIZE', state: 'SUCCESS/FAILURE' } ``` ### 5) Questionnaire démarré Pour notifier que le questionnaire est démarré (au moins une variable collectée dans Queen), Queen envoie un évènement à Pearl : postMessage ``` message = { type : 'QUEEN', command : 'UPDATE_SURVEY_UNIT', surveyUnit : '123', state: 'STARTED' } ``` ### 6) Questionnaire terminé (100%) Pour notifier que le questionnaire est terminé à 100%, Queen envoie un évènement à Pearl : postMessage ``` message = { type : 'QUEEN', command : 'UPDATE_SURVEY_UNIT', surveyUnit : '123', state: 'COMPLETED' } ``` ### 7) Fermer Queen Pour déclencher la fermeture de Queen, Queen envoie un évènement à Pearl : postMessage ``` message = { type : 'QUEEN', command : 'CLOSE_QUEEN' } ``` propostion de nouvel endPoint ``` { "operations": ["simpsons2020x00", "vqs2021x00"], "reporting-units": [ { "id": "11", "operation": "simpsons2020x00" }, { "id": "12", "operation": "simpsons2020x00" }, { "id": "13", "operation": "simpsons2020x00" }, { "id": "14", "operation": "simpsons2020x00" }, { "id": "20", "operation": "vqs2021x00" }, { "id": "21", "operation": "vqs2021x00" }, { "id": "22", "operation": "vqs2021x00" }, { "id": "23", "operation": "vqs2021x00" } ], "nomenclatures": ["cities2019", "regions2019"] } ``` ### 8) Retour healthCheck Pour notifier que Queen est bien embarqué dans Pearl, Queen envoie un évènement à Pearl : postMessage ``` message = { type : 'QUEEN', command : 'HEALTH_CHECK', state: 'READY' } ```