Safe Haskell | Safe-Inferred |
---|---|
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 AuthBasicBasic Source # | |
Defined in OryHydra.Model applyAuthMethod :: OryHydraConfig -> AuthBasicBasic -> OryHydraRequest req contentType res accept -> IO (OryHydraRequest req contentType res accept) Source # | |
AuthMethod AuthBasicBearer Source # | |
Defined in OryHydra.Model applyAuthMethod :: OryHydraConfig -> AuthBasicBearer -> 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 # |
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
Exception AuthMethodException Source # | |
Defined in OryHydra.Core | |
Show AuthMethodException Source # | |
Defined in OryHydra.Core showsPrec :: Int -> AuthMethodException -> ShowS # show :: AuthMethodException -> String # showList :: [AuthMethodException] -> ShowS # |
_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
FromJSON Date Source # | |
ToJSON Date Source # | |
Defined in OryHydra.Core | |
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 # | |
Enum Date Source # | |
Ix Date Source # | |
Show Date Source # | |
NFData Date Source # | |
Defined in OryHydra.Core | |
Eq Date Source # | |
Ord Date Source # | |
FromHttpApiData Date Source # | |
Defined in OryHydra.Core parseUrlPiece :: Text -> Either Text Date # parseHeader :: ByteString -> Either Text Date # | |
ToHttpApiData Date Source # | |
Defined in OryHydra.Core toUrlPiece :: Date -> Text # toEncodedUrlPiece :: Date -> Builder # toHeader :: Date -> ByteString # toQueryParam :: Date -> Text # | |
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 #