From db882cae080d3820f1723a711398c21db27f826a Mon Sep 17 00:00:00 2001 From: Mateus Cruz Date: Tue, 6 Feb 2024 02:56:02 -0300 Subject: small refactor --- lib/serializer.ml | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'lib/serializer.ml') diff --git a/lib/serializer.ml b/lib/serializer.ml index 35464ac..1024767 100644 --- a/lib/serializer.ml +++ b/lib/serializer.ml @@ -4,13 +4,25 @@ let transaction (t : Operation.transaction) = | `Credit -> "c" | `Debit -> "d" in - `Assoc - [ "valor", `Int t.value - ; "tipo", `String transaction_type - ; "descricao", `String t.description - ; ( "realizada_em" - , `String - (Format.asprintf "%a" (Ptime.pp_rfc3339 ~tz_offset_s:(-10800) ()) t.created_at) - ) - ] + let value = "valor", `Int t.value in + let transaction_type = "tipo", `String transaction_type in + let description = "descricao", `String t.description in + let created_at = + let formatted_date = + Format.asprintf "%a" (Ptime.pp_rfc3339 ~tz_offset_s:(-10800) ()) t.created_at + in + "realizada_em", `String formatted_date + in + `Assoc [ value; transaction_type; description; created_at ] +;; + +let bank_statement time client transactions = + let date = + `String (Format.asprintf "%a" (Ptime.pp_rfc3339 ~tz_offset_s:(-10800) ()) time) + in + let limit = `Int client.Operation.mov_limit in + let total = `Int client.balance in + let balance = `Assoc [ "total", total; "data_extrato", date; "limite", limit ] in + let last_transactions = `List (List.map transaction transactions) in + `Assoc [ "saldo", balance; "ultimas_transacoes", last_transactions ] ;; -- cgit v1.2.3