From 8aa78e9831c6d18937d5c3790db2c59ba59e9ab1 Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Mon, 25 Jul 2022 18:27:52 -0600 Subject: [PATCH] add published-at to registry response --- src/Handler/Package/Api.hs | 4 ++++ src/Handler/Package/V1/Index.hs | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/Handler/Package/Api.hs b/src/Handler/Package/Api.hs index cb8f948..7804b86 100644 --- a/src/Handler/Package/Api.hs +++ b/src/Handler/Package/Api.hs @@ -25,8 +25,10 @@ import Startlude ( (&), (.), (<$>), + UTCTime, ) import Yesod +import Data.Time.Format.ISO8601 (iso8601Show) dataUrl :: (ContentType, ByteString) -> Text @@ -48,6 +50,7 @@ data PackageRes = PackageRes , packageResLicense :: !Text , packageResVersions :: !(NonEmpty Version) , packageResDependencies :: !(HashMap PkgId DependencyRes) + , packageResPublishedAt :: !UTCTime } deriving (Show, Generic) @@ -66,6 +69,7 @@ instance ApiResponse PackageRes where , "categories" .= packageResCategories , "versions" .= packageResVersions , "dependency-metadata" .= (apiEncode v <$> packageResDependencies) + , "published-at" .= (iso8601Show packageResPublishedAt) ] diff --git a/src/Handler/Package/V1/Index.hs b/src/Handler/Package/V1/Index.hs index ef42c8c..44ad549 100644 --- a/src/Handler/Package/V1/Index.hs +++ b/src/Handler/Package/V1/Index.hs @@ -81,6 +81,7 @@ import Startlude ( (<&>), (<>), (=<<), + liftA2, ) import UnliftIO (Concurrently (..), mapConcurrently) import Yesod ( @@ -92,6 +93,7 @@ import Yesod ( sendResponseStatus, ) import Yesod.Core (logWarn) +import Data.List.NonEmpty (head) data PackageReq = PackageReq @@ -230,6 +232,7 @@ constructPackageListApiRes PackageMetadata{..} dependencies = do , packageResLicense = basicRender $ LicenseR V0 pkgId , packageResVersions = versionRecordNumber <$> pkgVersions , packageResDependencies = dependencies + , packageResPublishedAt = ((liftA2 fromMaybe) versionRecordCreatedAt versionRecordUpdatedAt) (head pkgVersions) }