From 18b951388b9d4ae575c286201363693724ccc77f Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Fri, 1 Jul 2022 14:25:45 -0600 Subject: [PATCH] fix release note json serialization --- src/Handler/Package/V0/ReleaseNotes.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Handler/Package/V0/ReleaseNotes.hs b/src/Handler/Package/V0/ReleaseNotes.hs index cd12db7..371b8e5 100644 --- a/src/Handler/Package/V0/ReleaseNotes.hs +++ b/src/Handler/Package/V0/ReleaseNotes.hs @@ -2,7 +2,7 @@ module Handler.Package.V0.ReleaseNotes where -import Data.Aeson (ToJSON (..)) +import Data.Aeson (ToJSON (..), object, KeyValue((.=))) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HM import Database.Queries (fetchAllAppVersions) @@ -10,14 +10,15 @@ import Foundation (Handler, RegistryCtx (..)) import Lib.Types.Core (PkgId) import Lib.Types.Emver (Version) import Model (VersionRecord (..)) -import Startlude (Down (..), Eq, Show, Text, fst, pure, sortOn, ($), (&&&), (.), (<$>)) +import Startlude (Down (..), Eq, Show, Text, fst, pure, sortOn, ($), (&&&), (.), (<$>), show) import Yesod (ToContent (..), ToTypedContent (..), YesodPersist (runDB), getYesod) +import Data.Aeson.Key (fromText) newtype ReleaseNotes = ReleaseNotes {unReleaseNotes :: HashMap Version Text} deriving (Eq, Show) instance ToJSON ReleaseNotes where - toJSON ReleaseNotes{..} = toJSON unReleaseNotes + toJSON ReleaseNotes {..} = object [ version .= value | (key, value) <- HM.toList unReleaseNotes, let version = fromText $ show key] instance ToContent ReleaseNotes where toContent = toContent . toJSON instance ToTypedContent ReleaseNotes where