{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}
module Network.API.Mandrill.Users.Types where
import Data.Char
import Data.Time
import qualified Data.Text as T
import Control.Monad
import Data.Monoid
import Data.Aeson
import Data.Aeson.Types
import Data.Aeson.TH
import Lens.Micro.TH (makeLenses)
import Network.API.Mandrill.Types
data UsersRq = UsersRq {
UsersRq -> MandrillKey
_ureq_key :: !MandrillKey
} deriving Int -> UsersRq -> ShowS
[UsersRq] -> ShowS
UsersRq -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UsersRq] -> ShowS
$cshowList :: [UsersRq] -> ShowS
show :: UsersRq -> String
$cshow :: UsersRq -> String
showsPrec :: Int -> UsersRq -> ShowS
$cshowsPrec :: Int -> UsersRq -> ShowS
Show
makeLenses ''UsersRq
deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''UsersRq
data MandrillStats = MandrillStats {
MandrillStats -> Int
_msts_sent :: Int
, MandrillStats -> Int
_msts_hard_bounces :: Int
, MandrillStats -> Int
_msts_soft_bounces :: Int
, MandrillStats -> Int
_msts_rejects :: Int
, MandrillStats -> Int
_msts_complaints :: Int
, MandrillStats -> Int
_msts_unsubs :: Int
, MandrillStats -> Int
_msts_opens :: Int
, MandrillStats -> Int
_msts_unique_opens :: Int
, MandrillStats -> Int
_msts_clicks :: Int
, MandrillStats -> Int
_msts_unique_clicks :: Int
} deriving Int -> MandrillStats -> ShowS
[MandrillStats] -> ShowS
MandrillStats -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MandrillStats] -> ShowS
$cshowList :: [MandrillStats] -> ShowS
show :: MandrillStats -> String
$cshow :: MandrillStats -> String
showsPrec :: Int -> MandrillStats -> ShowS
$cshowsPrec :: Int -> MandrillStats -> ShowS
Show
makeLenses ''MandrillStats
deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''MandrillStats
data UserStats = UserStats {
UserStats -> MandrillStats
_usts_today :: MandrillStats
, UserStats -> MandrillStats
_usts_last_7_days :: MandrillStats
, UserStats -> MandrillStats
_usts_last_30_days :: MandrillStats
, UserStats -> MandrillStats
_usts_last_60_days :: MandrillStats
, UserStats -> MandrillStats
_usts_last_90_days :: MandrillStats
, UserStats -> MandrillStats
_usts_all_time :: MandrillStats
} deriving Int -> UserStats -> ShowS
[UserStats] -> ShowS
UserStats -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UserStats] -> ShowS
$cshowList :: [UserStats] -> ShowS
show :: UserStats -> String
$cshow :: UserStats -> String
showsPrec :: Int -> UserStats -> ShowS
$cshowsPrec :: Int -> UserStats -> ShowS
Show
makeLenses ''UserStats
deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''UserStats
data UsersInfoResponse = UsersInfoResponse {
UsersInfoResponse -> MandrillKey
_usir_username :: !T.Text
, UsersInfoResponse -> MandrillDate
_usir_created_at :: MandrillDate
, UsersInfoResponse -> MandrillKey
_usir_public_id :: !T.Text
, UsersInfoResponse -> Int
_usir_reputation :: !Int
, UsersInfoResponse -> Int
_usir_hourly_quota :: !Int
, UsersInfoResponse -> Int
_usir_backlog :: !Int
, UsersInfoResponse -> UserStats
_usir_stats :: UserStats
} deriving Int -> UsersInfoResponse -> ShowS
[UsersInfoResponse] -> ShowS
UsersInfoResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UsersInfoResponse] -> ShowS
$cshowList :: [UsersInfoResponse] -> ShowS
show :: UsersInfoResponse -> String
$cshow :: UsersInfoResponse -> String
showsPrec :: Int -> UsersInfoResponse -> ShowS
$cshowsPrec :: Int -> UsersInfoResponse -> ShowS
Show
makeLenses ''UsersInfoResponse
deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''UsersInfoResponse
newtype UsersPingResponse = UsersPingResponse T.Text deriving Int -> UsersPingResponse -> ShowS
[UsersPingResponse] -> ShowS
UsersPingResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UsersPingResponse] -> ShowS
$cshowList :: [UsersPingResponse] -> ShowS
show :: UsersPingResponse -> String
$cshow :: UsersPingResponse -> String
showsPrec :: Int -> UsersPingResponse -> ShowS
$cshowsPrec :: Int -> UsersPingResponse -> ShowS
Show
deriveFromJSON defaultOptions ''UsersPingResponse
instance ToJSON UsersPingResponse where
toJSON :: UsersPingResponse -> Value
toJSON (UsersPingResponse MandrillKey
t) = MandrillKey -> Value
String MandrillKey
t
data UsersPing2Response = UsersPing2Response {
UsersPing2Response -> MandrillKey
_usrr_PING :: T.Text
} deriving Int -> UsersPing2Response -> ShowS
[UsersPing2Response] -> ShowS
UsersPing2Response -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UsersPing2Response] -> ShowS
$cshowList :: [UsersPing2Response] -> ShowS
show :: UsersPing2Response -> String
$cshow :: UsersPing2Response -> String
showsPrec :: Int -> UsersPing2Response -> ShowS
$cshowsPrec :: Int -> UsersPing2Response -> ShowS
Show
deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''UsersPing2Response
data = UsersResponse {
UsersSendersResponse -> MandrillKey
_usrr_address :: !T.Text
, UsersSendersResponse -> MandrillDate
_usrr_created_at :: MandrillDate
, UsersSendersResponse -> Int
_usrr_sent :: !Int
, UsersSendersResponse -> Int
_usrr_hard_bounces :: !Int
, UsersSendersResponse -> Int
_usrr_soft_bounces :: !Int
, UsersSendersResponse -> Int
_usrr_rejects :: !Int
, UsersSendersResponse -> Int
_usrr_complaints :: !Int
, UsersSendersResponse -> Int
_usrr_unsubs :: !Int
, UsersSendersResponse -> Int
_usrr_opens :: !Int
, UsersSendersResponse -> Int
_usrr_clicks :: !Int
, UsersSendersResponse -> Int
_usrr_unique_opens :: !Int
, UsersSendersResponse -> Int
_usrr_unique_clicks :: !Int
} deriving Int -> UsersSendersResponse -> ShowS
[UsersSendersResponse] -> ShowS
UsersSendersResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UsersSendersResponse] -> ShowS
$cshowList :: [UsersSendersResponse] -> ShowS
show :: UsersSendersResponse -> String
$cshow :: UsersSendersResponse -> String
showsPrec :: Int -> UsersSendersResponse -> ShowS
$cshowsPrec :: Int -> UsersSendersResponse -> ShowS
Show
makeLenses ''UsersSendersResponse
deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''UsersSendersResponse