shomei-servant-0.2.0.0: src/Shomei/Audit/Api.hs
-- | Administrative audit-query routes.
module Shomei.Audit.Api (AuditApi (..), AuditEventsRoute) where
import Servant.API
import Servant.API.MultiVerb (MultiVerb)
import Shomei.Audit.Dto (AuditPageCursor, AuditSessionId, AuditTimestamp, AuditUserId)
import Shomei.Audit.Result
import Shomei.Prelude
import Shomei.Servant.Authz (RequireAdmin)
import Shomei.Servant.PreHandler (PreHandlerResponses)
import Shomei.Servant.Result (ApplicationContentTypes, BadRequestPreHandlerResponses)
type AuditEventsRoute = "audit" :> "events" :> RequireAdmin :> PreHandlerResponses BadRequestPreHandlerResponses :> QueryParam "user" AuditUserId :> QueryParam "session" AuditSessionId :> QueryParams "type" Text :> QueryParam "since" AuditTimestamp :> QueryParam "until" AuditTimestamp :> QueryParam "limit" Int :> QueryParam "before" AuditPageCursor :> MultiVerb 'GET ApplicationContentTypes AuditEventsResponses AuditEventsResult
data AuditApi mode = AuditApi
{ events :: mode :- AuditEventsRoute
}
deriving stock (Generic)