From ddc8c9461d81785f3cacfc806dc3ea55e9e10cb2 Mon Sep 17 00:00:00 2001 From: Nicolas Mattia Date: Fri, 19 Apr 2019 16:24:24 +0200 Subject: [PATCH] handler: fix: Drop empty expressions --- infra/handler/src/DeckGo/Handler.hs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/infra/handler/src/DeckGo/Handler.hs b/infra/handler/src/DeckGo/Handler.hs index a6e45b12b..5e80627c7 100644 --- a/infra/handler/src/DeckGo/Handler.hs +++ b/infra/handler/src/DeckGo/Handler.hs @@ -1020,10 +1020,13 @@ data DynamoUpdateExpr | Remove T.Text dynamoSet :: [DynamoUpdateExpr] -> T.Text -dynamoSet exprs = setExpr <> " " <> removeExpr +dynamoSet exprs = T.unwords exprs' where - setExpr = "SET " <> T.intercalate "," sts - removeExpr = "REMOVE " <> T.intercalate "," removes + exprs' = catMaybes [setExpr, removeExpr] + setExpr = if length sts == 0 then Nothing else Just $ + "SET " <> T.intercalate "," sts + removeExpr = if length removes == 0 then Nothing else Just $ + "REMOVE " <> T.intercalate "," removes (sts, removes) = foldr f ([], []) exprs f (Set l r) (ls, rs) = (ls <> [l <> " = " <> r], rs) f (Remove t ) (ls, rs) = (ls, rs <> [t])