From d5cfbf28b874d66b5c0ef5e5190530d5a2d21245 Mon Sep 17 00:00:00 2001 From: Thomas Jensen Date: Tue, 24 Sep 2024 19:55:40 +0200 Subject: [PATCH] bug fix: disallow empty name and content --- app/Api/Api.hs | 5 +++-- app/Pages/Guestbook/Guestbook.hs | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Api/Api.hs b/app/Api/Api.hs index 8bb6bc9..838eedd 100644 --- a/app/Api/Api.hs +++ b/app/Api/Api.hs @@ -21,15 +21,16 @@ import Data.Aeson (encode, decode, Value (String)) import Data.ByteString.Lazy (fromStrict, toStrict) import Database.SQLite.Simple (query, Only (Only)) import Data.Password.Bcrypt (PasswordCheck(PasswordCheckSuccess, PasswordCheckFail), mkPassword, checkPassword, PasswordHash (PasswordHash)) -import Data.Text (pack) +import Data.Text (pack, unpack) import Crypto.Random (getRandomBytes) import Data.Text.Array (Array(ByteArray)) import Text.StringRandom (stringRandomIO) -import Data.Text (unpack) handleGuestbookEntry :: GuestbookEntry -> IO (Status, String) +handleGuestbookEntry (GuestbookEntry "" _ _) = return (status400, "Error, name cannot be empty") +handleGuestbookEntry (GuestbookEntry _ "" _) = return (status400, "Error, content cannot be empty") handleGuestbookEntry (GuestbookEntry name content parentId) = do time <- fmap round getPOSIXTime :: IO Int insert "INSERT INTO guestbook (name, timestamp, content, parentId) values (?, ?, ?, ?)" (name :: String, time :: Int, content :: String, parentId :: Int) diff --git a/app/Pages/Guestbook/Guestbook.hs b/app/Pages/Guestbook/Guestbook.hs index 198b03a..1419197 100644 --- a/app/Pages/Guestbook/Guestbook.hs +++ b/app/Pages/Guestbook/Guestbook.hs @@ -84,6 +84,9 @@ guestbook = do if(response.status == 200){ window.location.reload() } + else response.text().then(text => { + alert(response.status + "\n" + text) + }) }) }