module Patrol.Type.Request ( Request(..) ) where import qualified Data.Aeson as Aeson import qualified Data.Map as Map import qualified Data.Maybe as Maybe import qualified Data.Text as Text import qualified Patrol.Utility.Json as Json data Request = Request { :: Maybe (Map.Map Text.Text Text.Text) , Request -> Maybe Value data_ :: Maybe Aeson.Value , Request -> Maybe (Map Text Text) env :: Maybe (Map.Map Text.Text Text.Text) , Request -> Maybe (Map Text Text) headers :: Maybe (Map.Map Text.Text Text.Text) , Request -> Maybe Text method :: Maybe Text.Text , Request -> Maybe (Map Text Text) queryString :: Maybe (Map.Map Text.Text Text.Text) , Request -> Maybe Text url :: Maybe Text.Text } deriving (Request -> Request -> Bool (Request -> Request -> Bool) -> (Request -> Request -> Bool) -> Eq Request forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Request -> Request -> Bool $c/= :: Request -> Request -> Bool == :: Request -> Request -> Bool $c== :: Request -> Request -> Bool Eq, Int -> Request -> ShowS [Request] -> ShowS Request -> String (Int -> Request -> ShowS) -> (Request -> String) -> ([Request] -> ShowS) -> Show Request forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Request] -> ShowS $cshowList :: [Request] -> ShowS show :: Request -> String $cshow :: Request -> String showsPrec :: Int -> Request -> ShowS $cshowsPrec :: Int -> Request -> ShowS Show) instance Aeson.ToJSON Request where toJSON :: Request -> Value toJSON Request 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 -> Map Text Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "cookies" (Map Text Text -> Pair) -> Maybe (Map Text Text) -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Request -> Maybe (Map Text Text) cookies Request request , String -> Map Text Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "env" (Map Text Text -> Pair) -> Maybe (Map Text Text) -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Request -> Maybe (Map Text Text) env Request request , String -> Map Text Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "headers" (Map Text Text -> Pair) -> Maybe (Map Text Text) -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Request -> Maybe (Map Text Text) headers Request request , String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "data" (Value -> Pair) -> Maybe Value -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Request -> Maybe Value data_ Request request , String -> Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "method" (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Request -> Maybe Text method Request request , String -> Map Text Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "query_string" (Map Text Text -> Pair) -> Maybe (Map Text Text) -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Request -> Maybe (Map Text Text) queryString Request request , String -> Text -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "url" (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Request -> Maybe Text url Request request ]