mirror of
https://github.com/Start9Labs/registry.git
synced 2026-04-04 13:49:43 +00:00
fix jsonb deserialization
This commit is contained in:
@@ -11,7 +11,6 @@ dependencies:
|
|||||||
- base >=4.12 && <5
|
- base >=4.12 && <5
|
||||||
- base64
|
- base64
|
||||||
- aeson
|
- aeson
|
||||||
- aeson-pretty
|
|
||||||
- ansi-terminal
|
- ansi-terminal
|
||||||
- attoparsec
|
- attoparsec
|
||||||
- bytestring
|
- bytestring
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import Data.Aeson
|
|||||||
withObject,
|
withObject,
|
||||||
withText,
|
withText,
|
||||||
FromJSON(parseJSON),
|
FromJSON(parseJSON),
|
||||||
ToJSON(toJSON) )
|
ToJSON(toJSON), encode )
|
||||||
import Database.Persist.Sql ( PersistFieldSql(..) )
|
import Database.Persist.Sql ( PersistFieldSql(..) )
|
||||||
import Database.Persist.Types (SqlType(..))
|
import Database.Persist.Types (SqlType(..))
|
||||||
import Database.Persist (PersistValue(..))
|
import Database.Persist (PersistValue(..))
|
||||||
@@ -28,7 +28,6 @@ import Database.Persist.Class ( PersistField(..) )
|
|||||||
import Data.Maybe (maybe)
|
import Data.Maybe (maybe)
|
||||||
import qualified Data.ByteString as BS
|
import qualified Data.ByteString as BS
|
||||||
import Yesod.Persist (LiteralType(Escaped))
|
import Yesod.Persist (LiteralType(Escaped))
|
||||||
import Data.Aeson.Encode.Pretty (encodePretty)
|
|
||||||
|
|
||||||
|
|
||||||
data PackageManifest = PackageManifest
|
data PackageManifest = PackageManifest
|
||||||
@@ -102,11 +101,11 @@ instance ToJSON PackageDevice where
|
|||||||
toJSON = toJSON . unPackageDevice
|
toJSON = toJSON . unPackageDevice
|
||||||
|
|
||||||
instance PersistField PackageDevice where
|
instance PersistField PackageDevice where
|
||||||
toPersistValue = PersistLiteral_ Escaped . BS.toStrict . encodePretty
|
toPersistValue = PersistLiteral_ Escaped . BS.toStrict . encode
|
||||||
fromPersistValue (PersistLiteral t) = case eitherDecodeStrict t of
|
fromPersistValue (PersistByteString t) = case eitherDecodeStrict t of
|
||||||
Left err -> Left $ T.pack err
|
Left err -> Left $ T.pack err
|
||||||
Right val -> Right val
|
Right val -> Right val
|
||||||
fromPersistValue _ = Left "Invalid JSON value in database"
|
fromPersistValue _ = Left "Invalid JSON value in database ERR"
|
||||||
|
|
||||||
instance PersistFieldSql PackageDevice where
|
instance PersistFieldSql PackageDevice where
|
||||||
sqlType _ = SqlOther "JSONB"
|
sqlType _ = SqlOther "JSONB"
|
||||||
|
|||||||
Reference in New Issue
Block a user