module Patrol.Type.User ( User(..) ) where import qualified Data.Aeson as Aeson import qualified Data.Maybe as Maybe import qualified Data.Text as Text import qualified Patrol.Utility.Json as Json data User = User { User -> Maybe Text email :: Maybe Text.Text , User -> Maybe Text id_ :: Maybe Text.Text , User -> Maybe Text ipAddress :: Maybe Text.Text , User -> Maybe Text username :: Maybe Text.Text } deriving (User -> User -> Bool (User -> User -> Bool) -> (User -> User -> Bool) -> Eq User forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: User -> User -> Bool $c/= :: User -> User -> Bool == :: User -> User -> Bool $c== :: User -> User -> Bool Eq, Int -> User -> ShowS [User] -> ShowS User -> String (Int -> User -> ShowS) -> (User -> String) -> ([User] -> ShowS) -> Show User forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [User] -> ShowS $cshowList :: [User] -> ShowS show :: User -> String $cshow :: User -> String showsPrec :: Int -> User -> ShowS $cshowsPrec :: Int -> User -> ShowS Show) instance Aeson.ToJSON User where toJSON :: User -> Value toJSON User request = [Pair] -> Value Aeson.object ([Pair] -> Value) -> [Pair] -> Value forall a b. (a -> b) -> a -> b $ [Maybe Pair] -> [Pair] forall a. [Maybe a] -> [a] Maybe.catMaybes [ String -> Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "email" (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> User -> Maybe Text email User request , String -> Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "id" (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> User -> Maybe Text id_ User request , String -> Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "ipAddress" (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> User -> Maybe Text ipAddress User request , String -> Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "username" (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> User -> Maybe Text username User request ]