insert version platform when index on publish upload

This commit is contained in:
Lucy Cifferello
2022-11-29 18:13:25 -05:00
parent cd719e980f
commit 686213b410
2 changed files with 19 additions and 5 deletions

View File

@@ -7,11 +7,11 @@ module Database.Queries where
import Database.Persist.Sql ( import Database.Persist.Sql (
PersistStoreRead (get), PersistStoreRead (get),
PersistStoreWrite (insertKey, insert_, repsert), PersistStoreWrite (insertKey, insert_, insertMany_, repsert),
SqlBackend, SqlBackend,
) )
import Lib.Types.Core ( import Lib.Types.Core (
PkgId, OsArch, PkgId, OsArch (X86_64, AARCH64),
) )
import Lib.Types.Emver (Version) import Lib.Types.Emver (Version)
import Model ( import Model (
@@ -19,7 +19,7 @@ import Model (
Metric (Metric), Metric (Metric),
PkgDependency (..), PkgDependency (..),
PkgRecord (PkgRecord), PkgRecord (PkgRecord),
VersionRecord (VersionRecord), VersionPlatform, EntityField (VersionPlatformPkgId, VersionPlatformVersionNumber, VersionPlatformArch), VersionRecord (VersionRecord), VersionPlatform (VersionPlatform), EntityField (VersionPlatformPkgId, VersionPlatformVersionNumber, VersionPlatformArch),
) )
import Orphans.Emver () import Orphans.Emver ()
import Startlude ( import Startlude (
@@ -317,3 +317,17 @@ upsertPackageVersion PackageManifest{..} = do
packageManifestEosVersion packageManifestEosVersion
_res <- try @_ @SomeException $ insertKey pkgId (PkgRecord now (Just now)) _res <- try @_ @SomeException $ insertKey pkgId (PkgRecord now (Just now))
repsert (VersionRecordKey pkgId packageManifestVersion) ins 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

View File

@@ -49,7 +49,7 @@ import Database.Persist (
(=.), (=.),
) )
import Database.Persist.Postgresql (runSqlPoolNoTransaction) import Database.Persist.Postgresql (runSqlPoolNoTransaction)
import Database.Queries (upsertPackageVersion) import Database.Queries (upsertPackageVersion, upsertPackageVersionPlatform)
import Foundation ( import Foundation (
Handler, Handler,
RegistryCtx (..), RegistryCtx (..),
@@ -226,7 +226,7 @@ postPkgIndexR = do
[i|Could not locate manifest for #{indexPkgReqId}@#{indexPkgReqVersion}|] [i|Could not locate manifest for #{indexPkgReqId}@#{indexPkgReqVersion}|]
pool <- getsYesod appConnPool pool <- getsYesod appConnPool
runSqlPoolNoTransaction (upsertPackageVersion man) pool Nothing runSqlPoolNoTransaction (upsertPackageVersion man) pool Nothing
runSqlPoolNoTransaction (upsertPackageVersionPlatform man) pool Nothing
postPkgDeindexR :: Handler () postPkgDeindexR :: Handler ()
postPkgDeindexR = do postPkgDeindexR = do