+ partners
This commit is contained in:
parent
21371c7d50
commit
625c194fff
4 changed files with 73 additions and 2 deletions
|
|
@ -191,3 +191,16 @@ let management_aml_officers req server _env =
|
|||
Ok ""
|
||||
in
|
||||
respond_with_res res req
|
||||
|
||||
let management_partners_jsont = ExchangePartnerSetupRequest.jsont
|
||||
|
||||
let management_partners req server _env =
|
||||
let open Management in
|
||||
let db_conn = Vif.Server.device Devices.db_connection server in
|
||||
let res =
|
||||
let* v = Vif.Request.of_json req |> unwrap_err_msg in
|
||||
let* () = verify_partner v in
|
||||
let* () = update_partner ~db_conn v in
|
||||
Ok ""
|
||||
in
|
||||
respond_with_res res req
|
||||
|
|
|
|||
|
|
@ -494,4 +494,30 @@ let update_aml_officier ~db_conn v =
|
|||
let+ _last_change = Pg.insert_aml_officer db_conn v |> unwrap_err_caqti in
|
||||
()
|
||||
|
||||
(*[@@@ocaml.warning "-27"]*)
|
||||
[@@@ocaml.warning "-27"]
|
||||
|
||||
let verify_partner
|
||||
ExchangePartnerSetupRequest.
|
||||
{
|
||||
partner_base_url;
|
||||
partner_pub;
|
||||
wad_frequency;
|
||||
master_sig;
|
||||
start_date;
|
||||
end_date;
|
||||
wad_fee;
|
||||
} =
|
||||
let open Bin_sig.PartnerConfiguration in
|
||||
verify ~key:Config.Exchange.master_public_key master_sig
|
||||
{
|
||||
partner_pub;
|
||||
start_date;
|
||||
end_date;
|
||||
wad_frequency;
|
||||
wad_fee;
|
||||
h_url= Bin_type.Hash_64_cstr.hash partner_base_url;
|
||||
}
|
||||
|
||||
let update_partner ~db_conn v =
|
||||
let+ () = Pg.insert_partner db_conn v |> unwrap_err_caqti in
|
||||
()
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@ let routes =
|
|||
post (v "management" / "drain") management_drain_jsont --> management_drain;
|
||||
post (v "management" / "aml-officers") management_aml_officers_jsont
|
||||
--> management_aml_officers;
|
||||
post (v "management" / "partners") management_partners_jsont
|
||||
--> management_partners;
|
||||
]
|
||||
|
||||
let () =
|
||||
|
|
|
|||
30
src/pg.ml
30
src/pg.ml
|
|
@ -450,3 +450,33 @@ let insert_aml_officer =
|
|||
->
|
||||
Conn.find exchange_do_insert_aml_officer
|
||||
(officer_pub, master_sig, officer_name, is_active, read_only, change_date)
|
||||
|
||||
let insert_partner =
|
||||
let insert_partner =
|
||||
let master_sig = Bin_sig.PartnerConfiguration.caqti in
|
||||
Caqti_type.(
|
||||
t7 eddsa_pub time time time_span amount master_sig string ->. unit)
|
||||
"INSERT INTO partners (partner_master_pub, start_date, end_date, \
|
||||
wad_frequency, wad_fee, master_sig, partner_base_url) VALUES ($1, $2, \
|
||||
$3, $4, ($5,$6), $7, $8) ON CONFLICT DO NOTHING"
|
||||
in
|
||||
fun (module Conn : CONN)
|
||||
Api.ExchangePartnerSetupRequest.
|
||||
{
|
||||
partner_base_url;
|
||||
partner_pub;
|
||||
wad_frequency;
|
||||
master_sig;
|
||||
start_date;
|
||||
end_date;
|
||||
wad_fee;
|
||||
}
|
||||
->
|
||||
Conn.exec insert_partner
|
||||
( partner_pub,
|
||||
start_date,
|
||||
end_date,
|
||||
wad_frequency,
|
||||
wad_fee,
|
||||
master_sig,
|
||||
partner_base_url )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue