Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data ORYHydraConfig = ORYHydraConfig {}
- newConfig :: IO ORYHydraConfig
- addAuthMethod :: AuthMethod auth => ORYHydraConfig -> auth -> ORYHydraConfig
- withStdoutLogging :: ORYHydraConfig -> IO ORYHydraConfig
- withStderrLogging :: ORYHydraConfig -> IO ORYHydraConfig
- withNoLogging :: ORYHydraConfig -> ORYHydraConfig
- data ORYHydraRequest req contentType res accept = ORYHydraRequest {
- rMethod :: Method
- rUrlPath :: [ByteString]
- rParams :: Params
- rAuthTypes :: [TypeRep]
- rMethodL :: Lens_' (ORYHydraRequest req contentType res accept) Method
- rUrlPathL :: Lens_' (ORYHydraRequest req contentType res accept) [ByteString]
- rParamsL :: Lens_' (ORYHydraRequest req contentType res accept) Params
- rAuthTypesL :: Lens_' (ORYHydraRequest req contentType res accept) [TypeRep]
- class HasBodyParam req param where
- setBodyParam :: forall contentType res accept. (Consumes req contentType, MimeRender contentType param) => ORYHydraRequest req contentType res accept -> param -> ORYHydraRequest req contentType res accept
- class HasOptionalParam req param where
- applyOptionalParam :: ORYHydraRequest req contentType res accept -> param -> ORYHydraRequest req contentType res accept
- (-&-) :: ORYHydraRequest req contentType res accept -> param -> ORYHydraRequest req contentType res accept
- data Params = Params {}
- paramsQueryL :: Lens_' Params Query
- paramsHeadersL :: Lens_' Params RequestHeaders
- paramsBodyL :: Lens_' Params ParamBody
- data ParamBody
- _mkRequest :: Method -> [ByteString] -> ORYHydraRequest req contentType res accept
- _mkParams :: Params
- setHeader :: ORYHydraRequest req contentType res accept -> [Header] -> ORYHydraRequest req contentType res accept
- addHeader :: ORYHydraRequest req contentType res accept -> [Header] -> ORYHydraRequest req contentType res accept
- removeHeader :: ORYHydraRequest req contentType res accept -> [HeaderName] -> ORYHydraRequest req contentType res accept
- _setContentTypeHeader :: forall req contentType res accept. MimeType contentType => ORYHydraRequest req contentType res accept -> ORYHydraRequest req contentType res accept
- _setAcceptHeader :: forall req contentType res accept. MimeType accept => ORYHydraRequest req contentType res accept -> ORYHydraRequest req contentType res accept
- setQuery :: ORYHydraRequest req contentType res accept -> [QueryItem] -> ORYHydraRequest req contentType res accept
- addQuery :: ORYHydraRequest req contentType res accept -> [QueryItem] -> ORYHydraRequest req contentType res accept
- addForm :: ORYHydraRequest req contentType res accept -> Form -> ORYHydraRequest req contentType res accept
- _addMultiFormPart :: ORYHydraRequest req contentType res accept -> Part -> ORYHydraRequest req contentType res accept
- _setBodyBS :: ORYHydraRequest req contentType res accept -> ByteString -> ORYHydraRequest req contentType res accept
- _setBodyLBS :: ORYHydraRequest req contentType res accept -> ByteString -> ORYHydraRequest req contentType res accept
- _hasAuthType :: AuthMethod authMethod => ORYHydraRequest req contentType res accept -> Proxy authMethod -> ORYHydraRequest req contentType res accept
- toPath :: ToHttpApiData a => a -> ByteString
- toHeader :: ToHttpApiData a => (HeaderName, a) -> [Header]
- toForm :: ToHttpApiData v => (ByteString, v) -> Form
- toQuery :: ToHttpApiData a => (ByteString, Maybe a) -> [QueryItem]
- toPartialEscapeQuery :: ByteString -> Query -> PartialEscapeQuery
- data CollectionFormat
- toHeaderColl :: ToHttpApiData a => CollectionFormat -> (HeaderName, [a]) -> [Header]
- toFormColl :: ToHttpApiData v => CollectionFormat -> (ByteString, [v]) -> Form
- toQueryColl :: ToHttpApiData a => CollectionFormat -> (ByteString, Maybe [a]) -> Query
- _toColl :: Traversable f => CollectionFormat -> (f a -> [(b, ByteString)]) -> f [a] -> [(b, ByteString)]
- _toCollA :: (Traversable f, Traversable t, Alternative t) => CollectionFormat -> (f (t a) -> [(b, t ByteString)]) -> f (t [a]) -> [(b, t ByteString)]
- _toCollA' :: (Monoid c, Traversable f, Traversable t, Alternative t) => CollectionFormat -> (f (t a) -> [(b, t c)]) -> (Char -> c) -> f (t [a]) -> [(b, t c)]
- class Typeable a => AuthMethod a where
- applyAuthMethod :: ORYHydraConfig -> a -> ORYHydraRequest req contentType res accept -> IO (ORYHydraRequest req contentType res accept)
- data AnyAuthMethod = forall a.AuthMethod a => AnyAuthMethod a
- data AuthMethodException = AuthMethodException String
- _applyAuthMethods :: ORYHydraRequest req contentType res accept -> ORYHydraConfig -> IO (ORYHydraRequest req contentType res accept)
- _omitNulls :: [(Key, Value)] -> Value
- _toFormItem :: (ToHttpApiData a, Functor f) => t -> f a -> f (t, [Text])
- _emptyToNothing :: Maybe String -> Maybe String
- _memptyToNothing :: (Monoid a, Eq a) => Maybe a -> Maybe a
- newtype DateTime = DateTime {}
- _readDateTime :: (MonadFail m, Alternative m) => String -> m DateTime
- _showDateTime :: (t ~ UTCTime, FormatTime t) => t -> String
- _parseISO8601 :: (ParseTime t, MonadFail m, Alternative m) => String -> m t
- newtype Date = Date {}
- _readDate :: MonadFail m => String -> m Date
- _showDate :: FormatTime t => t -> String
- newtype ByteArray = ByteArray {}
- _readByteArray :: MonadFail m => Text -> m ByteArray
- _showByteArray :: ByteArray -> Text
- newtype Binary = Binary {}
- _readBinaryBase64 :: MonadFail m => Text -> m Binary
- _showBinaryBase64 :: Binary -> Text
- type Lens_' s a = Lens_ s s a a
- type Lens_ s t a b = forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t
ORYHydraConfig
data ORYHydraConfig Source #
ORYHydraConfig | |
|
Instances
Show ORYHydraConfig Source # | display the config |
Defined in ORYHydra.Core showsPrec :: Int -> ORYHydraConfig -> ShowS # show :: ORYHydraConfig -> String # showList :: [ORYHydraConfig] -> ShowS # |
newConfig :: IO ORYHydraConfig Source #
constructs a default ORYHydraConfig
configHost:
http://localhost
configUserAgent:
"ory-hydra-client/0.1.0.0"
addAuthMethod :: AuthMethod auth => ORYHydraConfig -> auth -> ORYHydraConfig Source #
updates config use AuthMethod on matching requests
withStdoutLogging :: ORYHydraConfig -> IO ORYHydraConfig Source #
updates the config to use stdout logging
withStderrLogging :: ORYHydraConfig -> IO ORYHydraConfig Source #
updates the config to use stderr logging
withNoLogging :: ORYHydraConfig -> ORYHydraConfig Source #
updates the config to disable logging
ORYHydraRequest
data ORYHydraRequest req contentType res accept Source #
Represents a request.
Type Variables:
ORYHydraRequest | |
|
Instances
Show (ORYHydraRequest req contentType res accept) Source # | |
Defined in ORYHydra.Core showsPrec :: Int -> ORYHydraRequest req contentType res accept -> ShowS # show :: ORYHydraRequest req contentType res accept -> String # showList :: [ORYHydraRequest req contentType res accept] -> ShowS # |
rUrlPathL :: Lens_' (ORYHydraRequest req contentType res accept) [ByteString] Source #
rUrlPath
Lens
rAuthTypesL :: Lens_' (ORYHydraRequest req contentType res accept) [TypeRep] Source #
rParams
Lens
HasBodyParam
class HasBodyParam req param where Source #
Designates the body parameter of a request
Nothing
setBodyParam :: forall contentType res accept. (Consumes req contentType, MimeRender contentType param) => ORYHydraRequest req contentType res accept -> param -> ORYHydraRequest req contentType res accept Source #
Instances
HasOptionalParam
class HasOptionalParam req param where Source #
Designates the optional parameters of a request
applyOptionalParam :: ORYHydraRequest req contentType res accept -> param -> ORYHydraRequest req contentType res accept Source #
Apply an optional parameter to a request
(-&-) :: ORYHydraRequest req contentType res accept -> param -> ORYHydraRequest req contentType res accept infixl 2 Source #
infix operator / alias for addOptionalParam
Instances
Request Params
paramsQueryL :: Lens_' Params Query Source #
paramsQuery
Lens
paramsBodyL :: Lens_' Params ParamBody Source #
paramsBody
Lens
Request Body
ORYHydraRequest Utils
:: Method | Method |
-> [ByteString] | Endpoint |
-> ORYHydraRequest req contentType res accept | req: Request Type, res: Response Type |
setHeader :: ORYHydraRequest req contentType res accept -> [Header] -> ORYHydraRequest req contentType res accept Source #
addHeader :: ORYHydraRequest req contentType res accept -> [Header] -> ORYHydraRequest req contentType res accept Source #
removeHeader :: ORYHydraRequest req contentType res accept -> [HeaderName] -> ORYHydraRequest req contentType res accept Source #
_setContentTypeHeader :: forall req contentType res accept. MimeType contentType => ORYHydraRequest req contentType res accept -> ORYHydraRequest req contentType res accept Source #
_setAcceptHeader :: forall req contentType res accept. MimeType accept => ORYHydraRequest req contentType res accept -> ORYHydraRequest req contentType res accept Source #
setQuery :: ORYHydraRequest req contentType res accept -> [QueryItem] -> ORYHydraRequest req contentType res accept Source #
addQuery :: ORYHydraRequest req contentType res accept -> [QueryItem] -> ORYHydraRequest req contentType res accept Source #
addForm :: ORYHydraRequest req contentType res accept -> Form -> ORYHydraRequest req contentType res accept Source #
_addMultiFormPart :: ORYHydraRequest req contentType res accept -> Part -> ORYHydraRequest req contentType res accept Source #
_setBodyBS :: ORYHydraRequest req contentType res accept -> ByteString -> ORYHydraRequest req contentType res accept Source #
_setBodyLBS :: ORYHydraRequest req contentType res accept -> ByteString -> ORYHydraRequest req contentType res accept Source #
_hasAuthType :: AuthMethod authMethod => ORYHydraRequest req contentType res accept -> Proxy authMethod -> ORYHydraRequest req contentType res accept Source #
Params Utils
toPath :: ToHttpApiData a => a -> ByteString Source #
toHeader :: ToHttpApiData a => (HeaderName, a) -> [Header] Source #
toForm :: ToHttpApiData v => (ByteString, v) -> Form Source #
toQuery :: ToHttpApiData a => (ByteString, Maybe a) -> [QueryItem] Source #
OpenAPI CollectionFormat
Utils
data CollectionFormat Source #
Determines the format of the array if type array is used.
CommaSeparated | CSV format for multiple parameters. |
SpaceSeparated | Also called SSV |
TabSeparated | Also called TSV |
PipeSeparated | `value1|value2|value2` |
MultiParamArray | Using multiple GET parameters, e.g. `foo=bar&foo=baz`. This is valid only for parameters in "query" ( |
toHeaderColl :: ToHttpApiData a => CollectionFormat -> (HeaderName, [a]) -> [Header] Source #
toFormColl :: ToHttpApiData v => CollectionFormat -> (ByteString, [v]) -> Form Source #
toQueryColl :: ToHttpApiData a => CollectionFormat -> (ByteString, Maybe [a]) -> Query Source #
_toColl :: Traversable f => CollectionFormat -> (f a -> [(b, ByteString)]) -> f [a] -> [(b, ByteString)] Source #
_toCollA :: (Traversable f, Traversable t, Alternative t) => CollectionFormat -> (f (t a) -> [(b, t ByteString)]) -> f (t [a]) -> [(b, t ByteString)] Source #
_toCollA' :: (Monoid c, Traversable f, Traversable t, Alternative t) => CollectionFormat -> (f (t a) -> [(b, t c)]) -> (Char -> c) -> f (t [a]) -> [(b, t c)] Source #
AuthMethods
class Typeable a => AuthMethod a where Source #
Provides a method to apply auth methods to requests
applyAuthMethod :: ORYHydraConfig -> a -> ORYHydraRequest req contentType res accept -> IO (ORYHydraRequest req contentType res accept) Source #
Instances
AuthMethod AnyAuthMethod Source # | |
Defined in ORYHydra.Core applyAuthMethod :: ORYHydraConfig -> AnyAuthMethod -> ORYHydraRequest req contentType res accept -> IO (ORYHydraRequest req contentType res accept) Source # | |
AuthMethod AuthOAuthOauth2 Source # | |
Defined in ORYHydra.Model applyAuthMethod :: ORYHydraConfig -> AuthOAuthOauth2 -> ORYHydraRequest req contentType res accept -> IO (ORYHydraRequest req contentType res accept) Source # | |
AuthMethod AuthBasicBasic Source # | |
Defined in ORYHydra.Model applyAuthMethod :: ORYHydraConfig -> AuthBasicBasic -> ORYHydraRequest req contentType res accept -> IO (ORYHydraRequest req contentType res accept) Source # |
data AnyAuthMethod Source #
An existential wrapper for any AuthMethod
forall a.AuthMethod a => AnyAuthMethod a |
Instances
AuthMethod AnyAuthMethod Source # | |
Defined in ORYHydra.Core applyAuthMethod :: ORYHydraConfig -> AnyAuthMethod -> ORYHydraRequest req contentType res accept -> IO (ORYHydraRequest req contentType res accept) Source # |
data AuthMethodException Source #
indicates exceptions related to AuthMethods
Instances
Show AuthMethodException Source # | |
Defined in ORYHydra.Core showsPrec :: Int -> AuthMethodException -> ShowS # show :: AuthMethodException -> String # showList :: [AuthMethodException] -> ShowS # | |
Exception AuthMethodException Source # | |
Defined in ORYHydra.Core |
_applyAuthMethods :: ORYHydraRequest req contentType res accept -> ORYHydraConfig -> IO (ORYHydraRequest req contentType res accept) Source #
apply all matching AuthMethods in config to request
Utils
_omitNulls :: [(Key, Value)] -> Value Source #
Removes Null fields. (OpenAPI-Specification 2.0 does not allow Null in JSON)
_toFormItem :: (ToHttpApiData a, Functor f) => t -> f a -> f (t, [Text]) Source #
Encodes fields using WH.toQueryParam
_memptyToNothing :: (Monoid a, Eq a) => Maybe a -> Maybe a Source #
Collapse (Just mempty) to Nothing
DateTime Formatting
Instances
_readDateTime :: (MonadFail m, Alternative m) => String -> m DateTime Source #
_parseISO8601
_showDateTime :: (t ~ UTCTime, FormatTime t) => t -> String Source #
TI.formatISO8601Millis
_parseISO8601 :: (ParseTime t, MonadFail m, Alternative m) => String -> m t Source #
parse an ISO8601 date-time string
Date Formatting
Instances
Enum Date Source # | |
Eq Date Source # | |
Data Date Source # | |
Defined in ORYHydra.Core gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Date -> c Date # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Date # dataTypeOf :: Date -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Date) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Date) # gmapT :: (forall b. Data b => b -> b) -> Date -> Date # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Date -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Date -> r # gmapQ :: (forall d. Data d => d -> u) -> Date -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Date -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Date -> m Date # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Date -> m Date # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Date -> m Date # | |
Ord Date Source # | |
Show Date Source # | |
Ix Date Source # | |
ToJSON Date Source # | |
Defined in ORYHydra.Core | |
FromJSON Date Source # | |
NFData Date Source # | |
Defined in ORYHydra.Core | |
ToHttpApiData Date Source # | |
Defined in ORYHydra.Core toUrlPiece :: Date -> Text # toEncodedUrlPiece :: Date -> Builder # toHeader :: Date -> ByteString # toQueryParam :: Date -> Text # | |
FromHttpApiData Date Source # | |
Defined in ORYHydra.Core parseUrlPiece :: Text -> Either Text Date # parseHeader :: ByteString -> Either Text Date # | |
MimeRender MimeMultipartFormData Date Source # | |
Defined in ORYHydra.Core mimeRender :: Proxy MimeMultipartFormData -> Date -> ByteString Source # mimeRender' :: MimeMultipartFormData -> Date -> ByteString Source # |
_readDate :: MonadFail m => String -> m Date Source #
TI.parseTimeM True TI.defaultTimeLocale "%Y-%m-%d"
_showDate :: FormatTime t => t -> String Source #
TI.formatTime TI.defaultTimeLocale "%Y-%m-%d"
Byte/Binary Formatting
base64 encoded characters
Instances
_showByteArray :: ByteArray -> Text Source #
show base64 encoded characters
any sequence of octets
Instances
_showBinaryBase64 :: Binary -> Text Source #