mirror of
https://github.com/Start9Labs/registry.git
synced 2026-03-26 02:11:53 +00:00
tracks user requests to registry
This commit is contained in:
@@ -15,7 +15,7 @@ import Database.Esqueleto.Experimental (
|
|||||||
)
|
)
|
||||||
import Foundation (Handler)
|
import Foundation (Handler)
|
||||||
import Handler.Package.V0.ReleaseNotes (ReleaseNotes (..))
|
import Handler.Package.V0.ReleaseNotes (ReleaseNotes (..))
|
||||||
import Handler.Util (queryParamAs)
|
import Handler.Util (queryParamAs, tickleMAU)
|
||||||
import Lib.Types.Emver (Version, parseVersion)
|
import Lib.Types.Emver (Version, parseVersion)
|
||||||
import Model (EntityField (..), OsVersion (..))
|
import Model (EntityField (..), OsVersion (..))
|
||||||
import Orphans.Emver ()
|
import Orphans.Emver ()
|
||||||
@@ -56,6 +56,7 @@ getEosVersionR = do
|
|||||||
filter (maybe (const True) (<) eosVersion . fst) $
|
filter (maybe (const True) (<) eosVersion . fst) $
|
||||||
((osVersionNumber &&& osVersionReleaseNotes))
|
((osVersionNumber &&& osVersionReleaseNotes))
|
||||||
<$> osV
|
<$> osV
|
||||||
|
tickleMAU
|
||||||
pure . JSONResponse $
|
pure . JSONResponse $
|
||||||
mLatest <&> \latest ->
|
mLatest <&> \latest ->
|
||||||
EosRes
|
EosRes
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ module Handler.Package.V0.Info where
|
|||||||
import Data.Aeson (ToJSON (..))
|
import Data.Aeson (ToJSON (..))
|
||||||
import Database.Esqueleto.Experimental (Entity (..), asc, from, orderBy, select, table, (^.))
|
import Database.Esqueleto.Experimental (Entity (..), asc, from, orderBy, select, table, (^.))
|
||||||
import Foundation (Handler, RegistryCtx (..))
|
import Foundation (Handler, RegistryCtx (..))
|
||||||
|
import Handler.Util (tickleMAU)
|
||||||
import Model (Category (..), EntityField (..))
|
import Model (Category (..), EntityField (..))
|
||||||
import Settings (AppSettings (..))
|
import Settings (AppSettings (..))
|
||||||
import Startlude (Generic, Show, Text, pure, ($), (.), (<$>))
|
import Startlude (Generic, Show, Text, pure, ($), (.), (<$>))
|
||||||
@@ -30,4 +31,5 @@ getInfoR = do
|
|||||||
cats <- from $ table @Category
|
cats <- from $ table @Category
|
||||||
orderBy [asc (cats ^. CategoryPriority)]
|
orderBy [asc (cats ^. CategoryPriority)]
|
||||||
pure cats
|
pure cats
|
||||||
|
tickleMAU
|
||||||
pure $ JSONResponse $ InfoRes name $ categoryName . entityVal <$> allCategories
|
pure $ JSONResponse $ InfoRes name $ categoryName . entityVal <$> allCategories
|
||||||
|
|||||||
@@ -11,12 +11,14 @@ import Data.String.Interpolate.IsString (i)
|
|||||||
import Data.Text qualified as T
|
import Data.Text qualified as T
|
||||||
import Data.Text.Lazy qualified as TL
|
import Data.Text.Lazy qualified as TL
|
||||||
import Data.Text.Lazy.Builder qualified as TB
|
import Data.Text.Lazy.Builder qualified as TB
|
||||||
|
import Foundation
|
||||||
import Lib.PkgRepository (PkgRepo, getHash)
|
import Lib.PkgRepository (PkgRepo, getHash)
|
||||||
import Lib.Types.Core (PkgId)
|
import Lib.Types.Core (PkgId)
|
||||||
import Lib.Types.Emver (
|
import Lib.Types.Emver (
|
||||||
Version,
|
Version,
|
||||||
VersionRange,
|
VersionRange,
|
||||||
)
|
)
|
||||||
|
import Model (UserActivity (..))
|
||||||
import Network.HTTP.Types (
|
import Network.HTTP.Types (
|
||||||
Status,
|
Status,
|
||||||
status400,
|
status400,
|
||||||
@@ -32,10 +34,13 @@ import Startlude (
|
|||||||
decodeUtf8,
|
decodeUtf8,
|
||||||
fromMaybe,
|
fromMaybe,
|
||||||
fst,
|
fst,
|
||||||
|
getCurrentTime,
|
||||||
isSpace,
|
isSpace,
|
||||||
|
liftIO,
|
||||||
not,
|
not,
|
||||||
pure,
|
pure,
|
||||||
readMaybe,
|
readMaybe,
|
||||||
|
void,
|
||||||
($),
|
($),
|
||||||
(.),
|
(.),
|
||||||
(<$>),
|
(<$>),
|
||||||
@@ -46,6 +51,9 @@ import Yesod (
|
|||||||
MonadHandler,
|
MonadHandler,
|
||||||
RenderRoute (..),
|
RenderRoute (..),
|
||||||
TypedContent (..),
|
TypedContent (..),
|
||||||
|
YesodPersist (runDB),
|
||||||
|
insertRecord,
|
||||||
|
liftHandler,
|
||||||
lookupGetParam,
|
lookupGetParam,
|
||||||
sendResponseStatus,
|
sendResponseStatus,
|
||||||
toContent,
|
toContent,
|
||||||
@@ -101,3 +109,12 @@ queryParamAs k p =
|
|||||||
Left e ->
|
Left e ->
|
||||||
sendResponseText status400 [i|Invalid Request! The query parameter '#{k}' failed to parse: #{e}|]
|
sendResponseText status400 [i|Invalid Request! The query parameter '#{k}' failed to parse: #{e}|]
|
||||||
Right a -> pure (Just a)
|
Right a -> pure (Just a)
|
||||||
|
|
||||||
|
|
||||||
|
tickleMAU :: Handler ()
|
||||||
|
tickleMAU = do
|
||||||
|
lookupGetParam "server-id" >>= \case
|
||||||
|
Nothing -> pure ()
|
||||||
|
Just sid -> do
|
||||||
|
now <- liftIO getCurrentTime
|
||||||
|
void $ liftHandler $ runDB $ insertRecord $ UserActivity now sid
|
||||||
|
|||||||
@@ -125,6 +125,10 @@ PkgDependency
|
|||||||
deriving Eq
|
deriving Eq
|
||||||
deriving Show
|
deriving Show
|
||||||
|
|
||||||
|
UserActivity
|
||||||
|
createdAt UTCTime
|
||||||
|
serverId Text
|
||||||
|
|
||||||
Admin
|
Admin
|
||||||
Id Text
|
Id Text
|
||||||
createdAt UTCTime
|
createdAt UTCTime
|
||||||
|
|||||||
Reference in New Issue
Block a user