+ wire
This commit is contained in:
parent
262aeaec66
commit
2d67963656
4 changed files with 168 additions and 0 deletions
103
src/pg.ml
103
src/pg.ml
|
|
@ -33,8 +33,12 @@ module Caqti_type = struct
|
|||
let eddsa_pub = EddsaPublicKey.caqti
|
||||
let eddsa_sig = EddsaSignature.caqti
|
||||
|
||||
(* TODO json strings? *)
|
||||
let json_str = Caqti_type.string
|
||||
|
||||
(* todo: enum type for wire_method? *)
|
||||
let wire_method = Caqti_type.string
|
||||
let payto_uri = Caqti_type.string
|
||||
|
||||
include struct
|
||||
(* alias for hash *)
|
||||
|
|
@ -297,3 +301,102 @@ let insert_global_fee =
|
|||
history_expiration,
|
||||
purse_account_limit,
|
||||
master_sig )
|
||||
|
||||
let lookup_wire_timestamp =
|
||||
let lookup_wire_timestamp =
|
||||
Caqti_type.(payto_uri ->? time)
|
||||
"SELECT last_change FROM wire_accounts WHERE payto_uri=$1"
|
||||
in
|
||||
fun (module Conn : CONN) ~payto_uri ->
|
||||
Conn.find_opt lookup_wire_timestamp payto_uri
|
||||
|
||||
let insert_wire =
|
||||
let insert_wire =
|
||||
let master_sig = Bin_sig.MasterWireDetails.caqti in
|
||||
Caqti_type.(
|
||||
t8 payto_uri string json_str json_str master_sig time (option string)
|
||||
(option int)
|
||||
->. unit)
|
||||
"INSERT INTO wire_accounts (payto_uri, conversion_url, \
|
||||
debit_restrictions, credit_restrictions, master_sig, is_active, \
|
||||
last_change, bank_label, priority) VALUES \
|
||||
($1,$2,$3::TEXT::JSONB,$4::TEXT::JSONB,$5,true,$6,$7,$8)"
|
||||
in
|
||||
fun (module Conn : CONN)
|
||||
Api.WireSetupMessage.
|
||||
{
|
||||
payto_uri;
|
||||
master_sig_wire;
|
||||
master_sig_add= _;
|
||||
validity_start;
|
||||
bank_label;
|
||||
priority;
|
||||
}
|
||||
->
|
||||
(* TODO wire
|
||||
what about master_sig_add ? *)
|
||||
let conversion_url = "" in
|
||||
let credit_restrictions = "" in
|
||||
let debit_restrictions = "" in
|
||||
Conn.exec insert_wire
|
||||
( payto_uri,
|
||||
conversion_url,
|
||||
debit_restrictions,
|
||||
credit_restrictions,
|
||||
master_sig_wire,
|
||||
validity_start,
|
||||
bank_label,
|
||||
priority )
|
||||
|
||||
let update_wire =
|
||||
let update_wire =
|
||||
let master_sig = Bin_sig.MasterWireDetails.caqti in
|
||||
Caqti_type.(
|
||||
t9 payto_uri bool string json_str json_str time master_sig (option string)
|
||||
(option int)
|
||||
->. unit)
|
||||
"UPDATE wire_accounts SET is_active=$2, conversion_url=$3, \
|
||||
debit_restrictions=$4::TEXT::JSONB, \
|
||||
credit_restrictions=$5::TEXT::JSONB, last_change=$6, master_sig=$7, \
|
||||
bank_label=$8, priority=$9 WHERE payto_uri=$1"
|
||||
in
|
||||
fun (module Conn : CONN)
|
||||
Api.WireSetupMessage.
|
||||
{
|
||||
payto_uri;
|
||||
master_sig_wire;
|
||||
master_sig_add= _;
|
||||
validity_start;
|
||||
bank_label;
|
||||
priority;
|
||||
}
|
||||
->
|
||||
(* TODO wire *)
|
||||
let conversion_url = "" in
|
||||
let credit_restrictions = "" in
|
||||
let debit_restrictions = "" in
|
||||
let enabled = true in
|
||||
Conn.exec update_wire
|
||||
( payto_uri,
|
||||
enabled,
|
||||
conversion_url,
|
||||
debit_restrictions,
|
||||
credit_restrictions,
|
||||
validity_start,
|
||||
master_sig_wire,
|
||||
bank_label,
|
||||
priority )
|
||||
|
||||
let disable_wire =
|
||||
let disable_wire =
|
||||
(* TODO
|
||||
check syntax on this
|
||||
don't erase old values with null and just change `is_active` and `last_change`? *)
|
||||
Caqti_type.(t2 payto_uri time ->. unit)
|
||||
"UPDATE wire_accounts SET is_active=false, conversion_url=NULL, \
|
||||
debit_restrictions=NULL::TEXT::JSONB, \
|
||||
credit_restrictions=NULL::TEXT::JSONB, last_change=$2, master_sig=NULL, \
|
||||
bank_label=NULL, priority=NULL WHERE payto_uri=$1"
|
||||
in
|
||||
fun (module Conn : CONN) ~payto_uri ~validity_end ->
|
||||
Conn.exec disable_wire (payto_uri, validity_end)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue