| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Morpheus.Types
Description
GQL Types
Synopsis
- data Event e c = Event {}
- class GQLType a where
- class GQLScalar a where
- parseValue :: ScalarValue -> Either Text a
- serialize :: a -> ScalarValue
- data GQLRequest = GQLRequest {}
- data GQLResponse
- newtype ID = ID {}
- data ScalarValue
- data GQLRootResolver (m :: * -> *) event (query :: (* -> *) -> *) (mut :: (* -> *) -> *) (sub :: (* -> *) -> *) = GQLRootResolver {
- queryResolver :: query (Resolver QUERY m event)
- mutationResolver :: mut (Resolver MUTATION m event)
- subscriptionResolver :: sub (Resolver SUBSCRIPTION m event)
- constRes :: (PureOperation o, Monad m) => b -> a -> Resolver o m e b
- constMutRes :: Monad m => [e] -> a -> args -> MutRes m e a
- data Undefined (m :: * -> *) = Undefined
- type Res = Resolver QUERY
- type MutRes = Resolver MUTATION
- type SubRes = Resolver SUBSCRIPTION
- type IORes = Res IO
- type IOMutRes = MutRes IO
- type IOSubRes = SubRes IO
- data Resolver (o :: OperationType) (m :: * -> *) event value where
- FailedResolver :: {..} -> Resolver o m event value
- QueryResolver :: {..} -> Resolver QUERY m event value
- MutResolver :: {..} -> Resolver MUTATION m event value
- SubResolver :: {..} -> Resolver SUBSCRIPTION m event value
- type QUERY = Query
- type MUTATION = Mutation
- type SUBSCRIPTION = Subscription
Documentation
class GQLType a where Source #
GraphQL type, every graphQL type should have an instance of Generic and GQLType.
... deriving (Generic, GQLType)
if you want to add description
... deriving (Generic)
instance GQLType ... where
description = const "your description ..."
Minimal complete definition
Nothing
Instances
class GQLScalar a where Source #
GraphQL Scalar
parseValue and serialize should be provided for every instances manually
Methods
parseValue :: ScalarValue -> Either Text a Source #
value parsing and validating
for exhaustive pattern matching should be handled all scalar types : ScalarValue, ScalarValue, ScalarValue, Boolean
invalid values can be reported with Left constructor :
parseValue String _ = Left "" -- without error message -- or parseValue String _ = Left "Error Message"
serialize :: a -> ScalarValue Source #
serialization of haskell type into scalar value
Instances
data GQLRequest Source #
GraphQL HTTP Request Body
Constructors
| GQLRequest | |
Instances
| Show GQLRequest Source # | |
Defined in Data.Morpheus.Types.IO Methods showsPrec :: Int -> GQLRequest -> ShowS # show :: GQLRequest -> String # showList :: [GQLRequest] -> ShowS # | |
| Generic GQLRequest Source # | |
Defined in Data.Morpheus.Types.IO Associated Types type Rep GQLRequest :: Type -> Type # | |
| ToJSON GQLRequest Source # | |
Defined in Data.Morpheus.Types.IO Methods toJSON :: GQLRequest -> Value # toEncoding :: GQLRequest -> Encoding # toJSONList :: [GQLRequest] -> Value # toEncodingList :: [GQLRequest] -> Encoding # | |
| FromJSON GQLRequest Source # | |
Defined in Data.Morpheus.Types.IO | |
| Interpreter (GQLRequest -> m GQLResponse) m e Source # | |
Defined in Data.Morpheus.Execution.Server.Interpreter Methods interpreter :: (Monad m, RootResCon m e query mut sub) => GQLRootResolver m e query mut sub -> GQLRequest -> m GQLResponse Source # | |
| type Rep GQLRequest Source # | |
Defined in Data.Morpheus.Types.IO | |
data GQLResponse Source #
GraphQL Response
Instances
| Show GQLResponse Source # | |
Defined in Data.Morpheus.Types.IO Methods showsPrec :: Int -> GQLResponse -> ShowS # show :: GQLResponse -> String # showList :: [GQLResponse] -> ShowS # | |
| Generic GQLResponse Source # | |
Defined in Data.Morpheus.Types.IO Associated Types type Rep GQLResponse :: Type -> Type # | |
| ToJSON GQLResponse Source # | |
Defined in Data.Morpheus.Types.IO Methods toJSON :: GQLResponse -> Value # toEncoding :: GQLResponse -> Encoding # toJSONList :: [GQLResponse] -> Value # toEncodingList :: [GQLResponse] -> Encoding # | |
| FromJSON GQLResponse Source # | |
Defined in Data.Morpheus.Types.IO | |
| Interpreter (GQLRequest -> m GQLResponse) m e Source # | |
Defined in Data.Morpheus.Execution.Server.Interpreter Methods interpreter :: (Monad m, RootResCon m e query mut sub) => GQLRootResolver m e query mut sub -> GQLRequest -> m GQLResponse Source # | |
| type Rep GQLResponse Source # | |
Defined in Data.Morpheus.Types.IO | |
default GraphQL type,
parses only ScalarValue and ScalarValue values,
serialized always as ScalarValue
Instances
| Show ID Source # | |
| Generic ID Source # | |
| GQLScalar ID Source # | |
Defined in Data.Morpheus.Types.ID Methods parseValue :: ScalarValue -> Either Text ID Source # serialize :: ID -> ScalarValue Source # scalarValidator :: Proxy ID -> DataValidator | |
| GQLType ID Source # | |
| type Rep ID Source # | |
Defined in Data.Morpheus.Types.ID | |
| type KIND ID Source # | |
Defined in Data.Morpheus.Types.ID | |
data ScalarValue Source #
Primitive Values for GQLScalar: ScalarValue, ScalarValue, ScalarValue, Boolean.
for performance reason type Text represents GraphQl ScalarValue value
Instances
data GQLRootResolver (m :: * -> *) event (query :: (* -> *) -> *) (mut :: (* -> *) -> *) (sub :: (* -> *) -> *) Source #
GraphQL Root resolver, also the interpreter generates a GQL schema from it.
queryResolver is required, mutationResolver and subscriptionResolver are optional,
if your schema does not supports mutation or subscription , you acn use () for it.
Constructors
| GQLRootResolver | |
Fields
| |
constMutRes :: Monad m => [e] -> a -> args -> MutRes m e a Source #
data Undefined (m :: * -> *) Source #
Constructors
| Undefined |
type SubRes = Resolver SUBSCRIPTION Source #
data Resolver (o :: OperationType) (m :: * -> *) event value where Source #
Constructors
| FailedResolver | |
Fields
| |
| QueryResolver | |
Fields
| |
| MutResolver | |
| SubResolver | |
Fields
| |
Instances
| Monad m => Monad (Resolver QUERY m e) Source # | |
| Functor m => Functor (Resolver o m e) Source # | |
| (PureOperation o, Monad m) => Applicative (Resolver o m e) Source # | |
Defined in Data.Morpheus.Types.Internal.Resolver Methods pure :: a -> Resolver o m e a # (<*>) :: Resolver o m e (a -> b) -> Resolver o m e a -> Resolver o m e b # liftA2 :: (a -> b -> c) -> Resolver o m e a -> Resolver o m e b -> Resolver o m e c # (*>) :: Resolver o m e a -> Resolver o m e b -> Resolver o m e b # (<*) :: Resolver o m e a -> Resolver o m e b -> Resolver o m e a # | |
| GQLType a => GQLType (Resolver o m e a) Source # | |
Defined in Data.Morpheus.Types.GQLType Methods description :: Proxy (Resolver o m e a) -> Maybe Text Source # __typeName :: Proxy (Resolver o m e a) -> Text __typeFingerprint :: Proxy (Resolver o m e a) -> DataFingerprint | |
| type KIND (Resolver o m e a) Source # | |
Defined in Data.Morpheus.Types.GQLType | |
type SUBSCRIPTION = Subscription Source #