Simplifies pattern matching using insertableValue and quote variable as identifier.

This commit is contained in:
Diogo Biazus
2015-10-18 14:03:43 -04:00
parent 241a38e958
commit 7ef5b7b43a
+3 -7
View File
@@ -12,7 +12,7 @@ import Data.Maybe (fromMaybe)
import Data.Monoid import Data.Monoid
import Data.String.Conversions (cs) import Data.String.Conversions (cs)
import Data.Text (Text) import Data.Text (Text)
import PostgREST.PgQuery (pgFmtLit) import PostgREST.PgQuery (pgFmtLit, pgFmtIdent, insertableValue)
import Prelude import Prelude
import qualified Web.JWT as JWT import qualified Web.JWT as JWT
import qualified Data.HashMap.Lazy as HashMap import qualified Data.HashMap.Lazy as HashMap
@@ -27,12 +27,8 @@ setDBEnv maybeClaims =
(map setVar . toList) <$> maybeClaims (map setVar . toList) <$> maybeClaims
where where
setVar ("role", String val) = setRole val setVar ("role", String val) = setRole val
setVar (k, String val) = "set local postgrest.claims." <> k <> " = " <> pgFmtLit val <> ";" setVar (k, val) = "set local postgrest.claims." <> pgFmtIdent k <>
setVar (k, Bool val) = "set local postgrest.claims." <> k <> " = " <> showText val <> ";" " = " <> insertableValue val <> ";"
setVar (k, Number val) = "set local postgrest.claims." <> k <> " = " <> showText val <> ";"
setVar _ = ""
showText :: Show a => a -> Text
showText = cs . show
setRole :: Text -> Text setRole :: Text -> Text
setRole role = "set local role " <> cs (pgFmtLit role) <> ";" setRole role = "set local role " <> cs (pgFmtLit role) <> ";"