(* TODO - GNU Taler db-events? it seems caqti/pgx does not support it *) let test req server _ = let (module Conn : Caqti_miou.CONNECTION) = Vif.Server.device Devices.db_connection server in let query = let open Caqti_request.Infix in Caqti_type.(unit ->! int) "SELECT 53 - 11" in match Conn.find query () with | Ok n -> let open Vif.Response.Syntax in let* () = Vif.Response.add ~field:"content-type" "text/plain; charset= utf-8" in let* () = Vif.Response.with_string req (Fmt.str "53 - 11 = %d@." n) in Vif.Response.respond `OK | Error err -> (* TODO don't leak private data in error messages *) let open Vif.Response.Syntax in let str = Fmt.str "Database error: %a." Caqti_error.pp err in let* () = Vif.Response.with_string req str in Vif.Response.respond `Internal_server_error let test_activate req server _ = (*let (module Conn : Caqti_miou.CONNECTION) =*) let db_conn = Vif.Server.device Devices.db_connection server in let secmod_signkey = Vif.Server.device Devices.secmod_signkey server in let exchange_public_key = secmod_signkey.sm_key in match Pg.activate_signing_key db_conn exchange_public_key with | Ok () -> let open Vif.Response.Syntax in let* () = Vif.Response.add ~field:"content-type" "text/plain; charset= utf-8" in let* () = Vif.Response.with_string req (Fmt.str "activate_signing_key done~~@.") in Vif.Response.respond `OK | Error err -> (* TODO don't leak private data in error messages *) let open Vif.Response.Syntax in let str = Fmt.str "Database error: %a." Caqti_error.pp err in let* () = Vif.Response.with_string req str in Vif.Response.respond `Internal_server_error