From 00ade6066e9dd88c65b176bf4788eea4c3e1a15d Mon Sep 17 00:00:00 2001 From: Mateus Cruz Date: Mon, 5 Feb 2024 21:50:50 -0300 Subject: fix: description length validation --- lib/operation.ml | 6 +++++- script.sql | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/operation.ml b/lib/operation.ml index 3c8df2a..bce6ac2 100644 --- a/lib/operation.ml +++ b/lib/operation.ml @@ -49,5 +49,9 @@ let decoder : transaction_op Utils.Decoder.decoder = (fun value transaction_type description -> transaction_type { value; description }) <$> ("valor" <: int) <*> ("tipo" <: transaction_type_decoder) - <*> ("descricao" <: string) + <*> ("descricao" + <: (string + >>= fun s -> + let len = String.length s in + if len <= 10 && len >= 1 then return s else fail)) ;; diff --git a/script.sql b/script.sql index 9a2b3c2..a02895a 100644 --- a/script.sql +++ b/script.sql @@ -11,7 +11,7 @@ CREATE TABLE transactions ( client_id INTEGER REFERENCES clients, value INTEGER NOT NULL, type transaction_type NOT NULL, - description VARCHAR(255) NOT NULL, + description VARCHAR(10) NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); -- cgit v1.2.3