Delegation-numerique-en-sante / covid19-algorithme-orientation-api

Code source de l'API recevant les réponses au questionnaire d'orientation Covid-19
MIT License
5 stars 4 forks source link

Postgresql storage #11

Closed PieterjanMontens closed 4 years ago

PieterjanMontens commented 4 years ago

Essai journalisation vers PostgreSQL

PieterjanMontens commented 4 years ago

Reste à voir exactement comment Postgrex transforme les données à inscrire dans Posgres, en local j'ai des erreurs quand j'exécute via swagger:

[error] #PID<0.502.0> running Covid19OrientationWeb.Endpoint (connection #PID<0.501.0>, stream id 1) terminated
Server: localhost:4000 (http)
Request: POST /orientation
** (exit) an exception was raised:
    ** (FunctionClauseError) no function clause matching in Plug.Conn.resp/3  (plug 1.9.0) lib/plug/conn.ex:577: Plug.Conn.resp(%Plug.Conn{adapter: {Plug.Cowboy.Conn, :...}, assigns: %{}, before_send: [], body_params: %Covid19OrientationWeb.Schemas.OrientationRequest{orientation: %Covid19OrientationWeb.Sch [...]
PieterjanMontens commented 4 years ago

Ok, le souci vient quand même store_pg, je regarde ce qu'il en est

PieterjanMontens commented 4 years ago

Ok, le crash en local est corrigé. Reste à inscrire correctement le JSON en PG, pour le moment il est enregistré comme string et non jsonb

PieterjanMontens commented 4 years ago

Solution trouvée en lançant l'écriture PG avant l'encodage JSON (Postgrex préfère le format map). Si pas assez performant, il est possible d'utiliser agent/cast/3 (voir store_pg ligne 30).