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 (
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

View File

@@ -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