Interpolate json string values in queries without extra quoting
This commit is contained in:
+6
-2
@@ -13,7 +13,7 @@ import Data.Maybe (fromMaybe, mapMaybe)
|
|||||||
import Data.Functor ( (<$>) )
|
import Data.Functor ( (<$>) )
|
||||||
import Control.Monad (join)
|
import Control.Monad (join)
|
||||||
import Data.String.Conversions (cs)
|
import Data.String.Conversions (cs)
|
||||||
import Data.Aeson.Types (Value)
|
import Data.Aeson (Value(..), encode)
|
||||||
import qualified Data.List as L
|
import qualified Data.List as L
|
||||||
|
|
||||||
type CompleteQuery = (Query, [Action])
|
type CompleteQuery = (Query, [Action])
|
||||||
@@ -96,9 +96,13 @@ insertInto t cols vals =
|
|||||||
Query (BS.intercalate ", " (map (const "?") vals)) <>
|
Query (BS.intercalate ", " (map (const "?") vals)) <>
|
||||||
") returning *"
|
") returning *"
|
||||||
, [EscapeIdentifier (qtSchema t), EscapeIdentifier (qtName t)]
|
, [EscapeIdentifier (qtSchema t), EscapeIdentifier (qtName t)]
|
||||||
++ map EscapeIdentifier cols ++ map toField vals
|
++ map EscapeIdentifier cols ++ map (Escape . rawJsonValue) vals
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rawJsonValue :: Value -> BS.ByteString
|
||||||
|
rawJsonValue (String s) = cs s
|
||||||
|
rawJsonValue v = cs $ encode v
|
||||||
|
|
||||||
update :: QualifiedTable -> [BS.ByteString] -> [Value] ->
|
update :: QualifiedTable -> [BS.ByteString] -> [Value] ->
|
||||||
CompleteQuery
|
CompleteQuery
|
||||||
update t cols vals =
|
update t cols vals =
|
||||||
|
|||||||
Reference in New Issue
Block a user