summaryrefslogtreecommitdiff
path: root/lib/serializer.ml
diff options
context:
space:
mode:
authorMateus Cruz <mateuscolvr@gmail.com>2024-02-06 02:56:02 -0300
committerMateus Cruz <mateuscolvr@gmail.com>2024-02-06 02:56:02 -0300
commitdb882cae080d3820f1723a711398c21db27f826a (patch)
tree521898630757be1b8056539d919ded3aa69a66ba /lib/serializer.ml
parent7c92898c8f0adb4a6014ce5f434a7d862a0cdc57 (diff)
small refactor
Diffstat (limited to 'lib/serializer.ml')
-rw-r--r--lib/serializer.ml30
1 files changed, 21 insertions, 9 deletions
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 ]
;;