diff --git a/src/http_management.ml b/src/http_management.ml index 27f99433..5e5c64fb 100644 --- a/src/http_management.ml +++ b/src/http_management.ml @@ -380,30 +380,17 @@ module Wire_fee = struct closing_fee; } - let do_ ~db_conn - WireFeeSetupMessage. - { - wire_method; - master_sig_wire; - fee_start; - fee_end; - closing_fee; - wire_fee; - } = + let do_ ~db_conn (v : WireFeeSetupMessage.t) = let* wire_fee_opt = - Pg.lookup_wire_fee_by_time db_conn ~wire_method ~start_date:fee_start - ~end_date:fee_end + Pg.get_wire_fees_by_time db_conn ~wire_method:v.wire_method + ~start_date:v.fee_start ~end_date:v.fee_end |> unwrap_err_caqti in match wire_fee_opt with - | Some (_wire_fee, _closing_fee) -> Error "wire-fee already setup" - | None -> - let+ () = - Pg.insert_wire_fee db_conn ~wire_method ~start_date:fee_start - ~end_date:fee_end ~wire_fee ~closing_fee ~master_sig:master_sig_wire - |> unwrap_err_caqti - in + | [] -> + let+ () = Pg.insert_wire_fee db_conn v |> unwrap_err_caqti in () + | _l -> Error "wire-fee already setup" let jsont = WireFeeSetupMessage.jsont diff --git a/src/pg.ml b/src/pg.ml index e105f946..ae12b089 100644 --- a/src/pg.ml +++ b/src/pg.ml @@ -329,14 +329,14 @@ let disable_auditor = Conn.exec update_auditor (auditor_pub, "", "", false, change_date) (* TODO return type *) -let lookup_wire_fee_by_time = +let get_wire_fees_by_time = let lookup_wire_fee_by_time = - Caqti_type.(t3 wire_method time time ->? t2 amount amount) + Caqti_type.(t3 wire_method time time ->* t2 amount amount) "SELECT (wire_fee).*, (closing_fee).* FROM wire_fee WHERE wire_method=$1 \ AND end_date > $2 AND start_date < $3" in fun (module Conn : CONN) ~wire_method ~start_date ~end_date -> - Conn.find_opt lookup_wire_fee_by_time (wire_method, start_date, end_date) + Conn.collect_list lookup_wire_fee_by_time (wire_method, start_date, end_date) let insert_wire_fee = let insert_wire_fee = @@ -346,15 +346,18 @@ let insert_wire_fee = closing_fee, master_sig) VALUES ($1, $2, $3, ($4,$5), ($6,$7), $8)" in fun (module Conn : CONN) - ~wire_method - ~start_date - ~end_date - ~wire_fee - ~closing_fee - ~master_sig + WireFeeSetupMessage. + { + wire_method; + master_sig_wire; + fee_start; + fee_end; + closing_fee; + wire_fee; + } -> Conn.exec insert_wire_fee - (wire_method, start_date, end_date, wire_fee, closing_fee, master_sig) + (wire_method, fee_start, fee_end, wire_fee, closing_fee, master_sig_wire) let get_global_fees = let get_global_fees = @@ -368,7 +371,7 @@ let get_global_fees = let lookup_global_fees_by_time = let lookup_global_fees_by_time = - Caqti_type.(t2 time time ->? global_fee) + Caqti_type.(t2 time time ->* global_fee) "SELECT start_date, end_date, (history_fee).*, (account_fee).*, \ (purse_fee).*, history_expiration, purse_account_limit, purse_timeout, \ master_sig FROM global_fee WHERE end_date > $1 AND start_date < $2"