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 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -125,6 +125,10 @@ PkgDependency
|
||||
deriving Eq
|
||||
deriving Show
|
||||
|
||||
UserActivity
|
||||
createdAt UTCTime
|
||||
serverId Text
|
||||
|
||||
Admin
|
||||
Id Text
|
||||
createdAt UTCTime
|
||||
|
||||
Reference in New Issue
Block a user