module Network.Mattermost.Types.Base where
import qualified Data.Aeson as A
import Data.Text (Text)
import Data.Time.Clock ( UTCTime )
import Network.HTTP.Base (RequestMethod)
type Hostname = Text
type Port = Int
type Logger = LogEvent -> IO ()
data LogEvent = LogEvent
{ LogEvent -> String
logFunction :: String
, LogEvent -> LogEventType
logEventType :: LogEventType
} deriving (LogEvent -> LogEvent -> Bool
(LogEvent -> LogEvent -> Bool)
-> (LogEvent -> LogEvent -> Bool) -> Eq LogEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LogEvent -> LogEvent -> Bool
$c/= :: LogEvent -> LogEvent -> Bool
== :: LogEvent -> LogEvent -> Bool
$c== :: LogEvent -> LogEvent -> Bool
Eq, Int -> LogEvent -> ShowS
[LogEvent] -> ShowS
LogEvent -> String
(Int -> LogEvent -> ShowS)
-> (LogEvent -> String) -> ([LogEvent] -> ShowS) -> Show LogEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LogEvent] -> ShowS
$cshowList :: [LogEvent] -> ShowS
show :: LogEvent -> String
$cshow :: LogEvent -> String
showsPrec :: Int -> LogEvent -> ShowS
$cshowsPrec :: Int -> LogEvent -> ShowS
Show)
data LogEventType
= HttpRequest RequestMethod String (Maybe String)
| HttpResponse Int String (Maybe String)
| WebSocketRequest A.Value
| WebSocketResponse (Either String String)
| WebSocketPing
| WebSocketPong
deriving (LogEventType -> LogEventType -> Bool
(LogEventType -> LogEventType -> Bool)
-> (LogEventType -> LogEventType -> Bool) -> Eq LogEventType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LogEventType -> LogEventType -> Bool
$c/= :: LogEventType -> LogEventType -> Bool
== :: LogEventType -> LogEventType -> Bool
$c== :: LogEventType -> LogEventType -> Bool
Eq, Int -> LogEventType -> ShowS
[LogEventType] -> ShowS
LogEventType -> String
(Int -> LogEventType -> ShowS)
-> (LogEventType -> String)
-> ([LogEventType] -> ShowS)
-> Show LogEventType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LogEventType] -> ShowS
$cshowList :: [LogEventType] -> ShowS
show :: LogEventType -> String
$cshow :: LogEventType -> String
showsPrec :: Int -> LogEventType -> ShowS
$cshowsPrec :: Int -> LogEventType -> ShowS
Show)
newtype ServerTime = ServerTime { ServerTime -> UTCTime
withServerTime :: UTCTime }
deriving (ServerTime -> ServerTime -> Bool
(ServerTime -> ServerTime -> Bool)
-> (ServerTime -> ServerTime -> Bool) -> Eq ServerTime
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ServerTime -> ServerTime -> Bool
$c/= :: ServerTime -> ServerTime -> Bool
== :: ServerTime -> ServerTime -> Bool
$c== :: ServerTime -> ServerTime -> Bool
Eq, Eq ServerTime
Eq ServerTime
-> (ServerTime -> ServerTime -> Ordering)
-> (ServerTime -> ServerTime -> Bool)
-> (ServerTime -> ServerTime -> Bool)
-> (ServerTime -> ServerTime -> Bool)
-> (ServerTime -> ServerTime -> Bool)
-> (ServerTime -> ServerTime -> ServerTime)
-> (ServerTime -> ServerTime -> ServerTime)
-> Ord ServerTime
ServerTime -> ServerTime -> Bool
ServerTime -> ServerTime -> Ordering
ServerTime -> ServerTime -> ServerTime
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ServerTime -> ServerTime -> ServerTime
$cmin :: ServerTime -> ServerTime -> ServerTime
max :: ServerTime -> ServerTime -> ServerTime
$cmax :: ServerTime -> ServerTime -> ServerTime
>= :: ServerTime -> ServerTime -> Bool
$c>= :: ServerTime -> ServerTime -> Bool
> :: ServerTime -> ServerTime -> Bool
$c> :: ServerTime -> ServerTime -> Bool
<= :: ServerTime -> ServerTime -> Bool
$c<= :: ServerTime -> ServerTime -> Bool
< :: ServerTime -> ServerTime -> Bool
$c< :: ServerTime -> ServerTime -> Bool
compare :: ServerTime -> ServerTime -> Ordering
$ccompare :: ServerTime -> ServerTime -> Ordering
$cp1Ord :: Eq ServerTime
Ord, ReadPrec [ServerTime]
ReadPrec ServerTime
Int -> ReadS ServerTime
ReadS [ServerTime]
(Int -> ReadS ServerTime)
-> ReadS [ServerTime]
-> ReadPrec ServerTime
-> ReadPrec [ServerTime]
-> Read ServerTime
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ServerTime]
$creadListPrec :: ReadPrec [ServerTime]
readPrec :: ReadPrec ServerTime
$creadPrec :: ReadPrec ServerTime
readList :: ReadS [ServerTime]
$creadList :: ReadS [ServerTime]
readsPrec :: Int -> ReadS ServerTime
$creadsPrec :: Int -> ReadS ServerTime
Read, Int -> ServerTime -> ShowS
[ServerTime] -> ShowS
ServerTime -> String
(Int -> ServerTime -> ShowS)
-> (ServerTime -> String)
-> ([ServerTime] -> ShowS)
-> Show ServerTime
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ServerTime] -> ShowS
$cshowList :: [ServerTime] -> ShowS
show :: ServerTime -> String
$cshow :: ServerTime -> String
showsPrec :: Int -> ServerTime -> ShowS
$cshowsPrec :: Int -> ServerTime -> ShowS
Show)