diff --git a/src/Database/Queries.hs b/src/Database/Queries.hs index 75160a0..2672888 100644 --- a/src/Database/Queries.hs +++ b/src/Database/Queries.hs @@ -7,11 +7,11 @@ module Database.Queries where import Database.Persist.Sql ( PersistStoreRead (get), - PersistStoreWrite (insertKey, insert_, repsert), + PersistStoreWrite (insertKey, insert_, insertMany_, repsert), SqlBackend, ) import Lib.Types.Core ( - PkgId, OsArch, + PkgId, OsArch (X86_64, AARCH64), ) import Lib.Types.Emver (Version) import Model ( @@ -19,7 +19,7 @@ import Model ( Metric (Metric), PkgDependency (..), PkgRecord (PkgRecord), - VersionRecord (VersionRecord), VersionPlatform, EntityField (VersionPlatformPkgId, VersionPlatformVersionNumber, VersionPlatformArch), + VersionRecord (VersionRecord), VersionPlatform (VersionPlatform), EntityField (VersionPlatformPkgId, VersionPlatformVersionNumber, VersionPlatformArch), ) import Orphans.Emver () import Startlude ( @@ -317,3 +317,17 @@ upsertPackageVersion PackageManifest{..} = do packageManifestEosVersion _res <- try @_ @SomeException $ insertKey pkgId (PkgRecord now (Just now)) repsert (VersionRecordKey pkgId packageManifestVersion) ins + +upsertPackageVersionPlatform :: (MonadUnliftIO m) => PackageManifest -> ReaderT SqlBackend m () +upsertPackageVersionPlatform PackageManifest{..} = do + now <- liftIO getCurrentTime + let pkgId = PkgRecordKey packageManifestId + let arches = [X86_64, AARCH64] + let records = createVersionPlatformRecord now pkgId packageManifestVersion <$> arches + insertMany_ records + where + createVersionPlatformRecord time id version = VersionPlatform + time + (Just time) + id + version \ No newline at end of file diff --git a/src/Handler/Admin.hs b/src/Handler/Admin.hs index 038e7f7..757c113 100644 --- a/src/Handler/Admin.hs +++ b/src/Handler/Admin.hs @@ -49,7 +49,7 @@ import Database.Persist ( (=.), ) import Database.Persist.Postgresql (runSqlPoolNoTransaction) -import Database.Queries (upsertPackageVersion) +import Database.Queries (upsertPackageVersion, upsertPackageVersionPlatform) import Foundation ( Handler, RegistryCtx (..), @@ -226,7 +226,7 @@ postPkgIndexR = do [i|Could not locate manifest for #{indexPkgReqId}@#{indexPkgReqVersion}|] pool <- getsYesod appConnPool runSqlPoolNoTransaction (upsertPackageVersion man) pool Nothing - + runSqlPoolNoTransaction (upsertPackageVersionPlatform man) pool Nothing postPkgDeindexR :: Handler () postPkgDeindexR = do