mirror of
https://github.com/Start9Labs/registry.git
synced 2026-03-26 18:21:52 +00:00
41 lines
1.6 KiB
Haskell
41 lines
1.6 KiB
Haskell
{-# LANGUAGE RecordWildCards #-}
|
|
{-# LANGUAGE FlexibleContexts #-}
|
|
{-# LANGUAGE RankNTypes #-}
|
|
|
|
module Database.Queries where
|
|
|
|
import Database.Persist.Sql
|
|
import Lib.Types.AppIndex
|
|
import Lib.Types.Emver
|
|
import Model
|
|
import Orphans.Emver ( )
|
|
import Startlude
|
|
|
|
fetchApp :: MonadIO m => PkgId -> ReaderT SqlBackend m (Maybe (Entity SApp))
|
|
fetchApp appId = selectFirst [SAppAppId ==. appId] []
|
|
|
|
fetchAppVersion :: MonadIO m => Version -> Key SApp -> ReaderT SqlBackend m (Maybe (Entity SVersion))
|
|
fetchAppVersion appVersion appId = selectFirst [SVersionNumber ==. appVersion, SVersionAppId ==. appId] []
|
|
|
|
createApp :: MonadIO m => PkgId -> StoreApp -> ReaderT SqlBackend m (Maybe (Key SApp))
|
|
createApp appId StoreApp {..} = do
|
|
time <- liftIO getCurrentTime
|
|
insertUnique $ SApp time Nothing storeAppTitle appId storeAppDescShort storeAppDescLong storeAppIconType
|
|
|
|
createAppVersion :: MonadIO m => Key SApp -> VersionInfo -> Text -> ReaderT SqlBackend m (Maybe (Key SVersion))
|
|
createAppVersion sId VersionInfo {..} arch = do
|
|
time <- liftIO getCurrentTime
|
|
insertUnique $ SVersion time
|
|
Nothing
|
|
sId
|
|
versionInfoVersion
|
|
versionInfoReleaseNotes
|
|
versionInfoOsRequired
|
|
versionInfoOsRecommended
|
|
(Just arch)
|
|
|
|
createMetric :: MonadIO m => Key SApp -> Key SVersion -> ReaderT SqlBackend m ()
|
|
createMetric appId versionId = do
|
|
time <- liftIO getCurrentTime
|
|
insert_ $ Metric time appId versionId
|