From 75c95ff621c71a56d50d224e48ce24400f3b95a1 Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Tue, 1 Aug 2023 21:34:41 -0400 Subject: [PATCH] fix jsonb deserialization --- package.yaml | 1 - src/Lib/Types/Manifest.hs | 9 ++++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/package.yaml b/package.yaml index 2b2ac71..52f6cfb 100644 --- a/package.yaml +++ b/package.yaml @@ -11,7 +11,6 @@ dependencies: - base >=4.12 && <5 - base64 - aeson - - aeson-pretty - ansi-terminal - attoparsec - bytestring diff --git a/src/Lib/Types/Manifest.hs b/src/Lib/Types/Manifest.hs index b41cb11..ec4331a 100644 --- a/src/Lib/Types/Manifest.hs +++ b/src/Lib/Types/Manifest.hs @@ -19,7 +19,7 @@ import Data.Aeson withObject, withText, FromJSON(parseJSON), - ToJSON(toJSON) ) + ToJSON(toJSON), encode ) import Database.Persist.Sql ( PersistFieldSql(..) ) import Database.Persist.Types (SqlType(..)) import Database.Persist (PersistValue(..)) @@ -28,7 +28,6 @@ import Database.Persist.Class ( PersistField(..) ) import Data.Maybe (maybe) import qualified Data.ByteString as BS import Yesod.Persist (LiteralType(Escaped)) -import Data.Aeson.Encode.Pretty (encodePretty) data PackageManifest = PackageManifest @@ -102,11 +101,11 @@ instance ToJSON PackageDevice where toJSON = toJSON . unPackageDevice instance PersistField PackageDevice where - toPersistValue = PersistLiteral_ Escaped . BS.toStrict . encodePretty - fromPersistValue (PersistLiteral t) = case eitherDecodeStrict t of + toPersistValue = PersistLiteral_ Escaped . BS.toStrict . encode + fromPersistValue (PersistByteString t) = case eitherDecodeStrict t of Left err -> Left $ T.pack err Right val -> Right val - fromPersistValue _ = Left "Invalid JSON value in database" + fromPersistValue _ = Left "Invalid JSON value in database ERR" instance PersistFieldSql PackageDevice where sqlType _ = SqlOther "JSONB"