---
# System prepended metadata

title: 'Implémentation synchron Queen / Pearl [Back]'

---

# Implémentation synchron Queen / Pearl [Back]

Notes liées :bookmark_tabs: :
- [Stratégie de synchronisation Pearl / Queen](/4z-cCYrtS3SOg0cB19Ut5w)
- [Synchro Queen / Pearl](/bov9kNmNScewPDxn7gYe9g)
- [Implémentation synchro Queen / Pearl [Front]](/ZLgvUDosSga-eFmsWEEaQw)


## Pearl & Queen

Il y a exactement les même évolutions pour Queen et Pearl afin d'assurer la sécurité de la synchronisation. La suite de ce document concerne donc tant l'API Pearl que l'API Queen.

## Healthcheck

Ajout d'un end-point accessible via
- GET **/api/healthcheck**

Ce end-point n'est pas sécurisé et ne necessite donc pas d'authentification.
Il renvoie un code retour 200, si l'API est bien en vie. Il ne fait rien d'autre.

## Zone temporaire ("garage")

### POST
Ajout d'un end-point accessible via
- POST **/api/survey-unit/:id/temp-zone**

Cette méthode récupère donc :
- l'identifiant de l'unité-enquêtée
- l'identifiant de l'enquêteur 
- le corps de la requête correspondant à l'unité enquêtée envoyée par le front

Ensuite cette méthode enregistre une nouvelle ligne dans une table appelée **survey_unit_temp_zone**.

Dans cette table il y a 4 colonnes:
- **id** : identifiant unique
- **survey_unit_id** : identifiant de l'unité enquêtée
- **interviewer_id** (**user_id** pour Queen): identifiant de l'utilisateur faisant le POST
- **date** : timestamp (milisec depuis 01/01/1970) : date d'enregistrement du POST (temps récupéré côté serveur)
- **survey_unit** : colonne **jsonb** comprenant l'intégralité du corps de la requête

Cette modélisation sans clé étrangère permet d'assurer un enregistrement dans tous les cas. Même dans le cas ou un même utilisateur enregistre 2 fois la même unité enquêtée (on aura donc 2 lignes dans la table avec des dates différentes)
    
Ce end-point est sécurisé par la méthode classique de vérification de rôle. (Pas de vérification d'habilitations contrairement au PUT classique)

### GET

Ajout d'un end-point accessible via:
- GET **/api/survey-units/temp-zone**

Il permet de récupérer toutes les unités enquêtées sauvegardées dans la zone temporaire ("garage") sans aucun filtre.

Ce end-point est sécurisé par la méthode classique de vérification de rôle. (Pas de vérification d'habilitation)