diff --git a/src/pg.ml b/src/pg.ml index ee470c43..9d73398f 100644 --- a/src/pg.ml +++ b/src/pg.ml @@ -208,6 +208,19 @@ module Caqti_type = struct Caqti_type.( t9 time time amount amount amount time_span int32 time_span master_sig) + let aggregate_transfer_fee = + let master_sig = Bin_sig.MasterWireFee.caqti in + Caqti_type.custom + ~encode:(fun + AggregateTransferFee. + { wire_fee; closing_fee; start_date; end_date; sig_ } + -> Ok (wire_fee, closing_fee, start_date, end_date, sig_)) + ~decode:(fun (wire_fee, closing_fee, start_date, end_date, sig_) -> + Ok + AggregateTransferFee. + { wire_fee; closing_fee; start_date; end_date; sig_ }) + Caqti_type.(t5 amount amount time time master_sig) + include Caqti_request.Infix end @@ -349,31 +362,24 @@ let insert_wire_fee = Conn.exec insert_wire_fee (wire_method, fee_start, fee_end, wire_fee, closing_fee, master_sig_wire) -(* TODO return type, use AggregateTransferFee.t *) let get_wire_fees_by_time = let lookup_wire_fee_by_time = - 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" + Caqti_type.(t3 wire_method time time ->* aggregate_transfer_fee) + "SELECT (wire_fee).*, (closing_fee).*, start_date, end_date, master_sig \ + 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.collect_list lookup_wire_fee_by_time (wire_method, start_date, end_date) let get_wire_fees = let get_wire_fees = - let master_sig = Bin_sig.MasterWireFee.caqti in - Caqti_type.(string ->* t5 amount amount time time master_sig) - "SELECT wire_fee, closing_fee, start_date, end_date, master_sig FROM \ - wire_fee WHERE wire_method=$1" + Caqti_type.(string ->* aggregate_transfer_fee) + "SELECT (wire_fee).*, (closing_fee).*, start_date, end_date, master_sig \ + FROM wire_fee WHERE wire_method=$1" in fun (module Conn : CONN) ~wire_method -> - let open Syntax in - let+ l = Conn.collect_list get_wire_fees wire_method in - List.map - (fun (wire_fee, closing_fee, start_date, end_date, sig_) -> - AggregateTransferFee. - { wire_fee; closing_fee; start_date; end_date; sig_ }) - l + Conn.collect_list get_wire_fees wire_method let get_global_fees = let get_global_fees =