tracks user requests to registry

This commit is contained in:
Keagan McClelland
2022-06-27 14:35:34 -06:00
committed by ProofOfKeags
parent e96fe6424f
commit 221ea133fa
4 changed files with 25 additions and 1 deletions

View File

@@ -15,7 +15,7 @@ import Database.Esqueleto.Experimental (
)
import Foundation (Handler)
import Handler.Package.V0.ReleaseNotes (ReleaseNotes (..))
import Handler.Util (queryParamAs)
import Handler.Util (queryParamAs, tickleMAU)
import Lib.Types.Emver (Version, parseVersion)
import Model (EntityField (..), OsVersion (..))
import Orphans.Emver ()
@@ -56,6 +56,7 @@ getEosVersionR = do
filter (maybe (const True) (<) eosVersion . fst) $
((osVersionNumber &&& osVersionReleaseNotes))
<$> osV
tickleMAU
pure . JSONResponse $
mLatest <&> \latest ->
EosRes

View File

@@ -3,6 +3,7 @@ module Handler.Package.V0.Info where
import Data.Aeson (ToJSON (..))
import Database.Esqueleto.Experimental (Entity (..), asc, from, orderBy, select, table, (^.))
import Foundation (Handler, RegistryCtx (..))
import Handler.Util (tickleMAU)
import Model (Category (..), EntityField (..))
import Settings (AppSettings (..))
import Startlude (Generic, Show, Text, pure, ($), (.), (<$>))
@@ -30,4 +31,5 @@ getInfoR = do
cats <- from $ table @Category
orderBy [asc (cats ^. CategoryPriority)]
pure cats
tickleMAU
pure $ JSONResponse $ InfoRes name $ categoryName . entityVal <$> allCategories

View File

@@ -11,12 +11,14 @@ import Data.String.Interpolate.IsString (i)
import Data.Text qualified as T
import Data.Text.Lazy qualified as TL
import Data.Text.Lazy.Builder qualified as TB
import Foundation
import Lib.PkgRepository (PkgRepo, getHash)
import Lib.Types.Core (PkgId)
import Lib.Types.Emver (
Version,
VersionRange,
)
import Model (UserActivity (..))
import Network.HTTP.Types (
Status,
status400,
@@ -32,10 +34,13 @@ import Startlude (
decodeUtf8,
fromMaybe,
fst,
getCurrentTime,
isSpace,
liftIO,
not,
pure,
readMaybe,
void,
($),
(.),
(<$>),
@@ -46,6 +51,9 @@ import Yesod (
MonadHandler,
RenderRoute (..),
TypedContent (..),
YesodPersist (runDB),
insertRecord,
liftHandler,
lookupGetParam,
sendResponseStatus,
toContent,
@@ -101,3 +109,12 @@ queryParamAs k p =
Left e ->
sendResponseText status400 [i|Invalid Request! The query parameter '#{k}' failed to parse: #{e}|]
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

View File

@@ -125,6 +125,10 @@ PkgDependency
deriving Eq
deriving Show
UserActivity
createdAt UTCTime
serverId Text
Admin
Id Text
createdAt UTCTime