1
Fork 0
mirror of https://github.com/Airsequel/AirGQL.git synced 2025-07-11 09:24:55 +03:00
airgql/source/AirGQL/GQLWrapper.hs

47 lines
940 B
Haskell

{-|
Increase readability of code
by wrapping `graphql` library with descriptive wrappers
-}
module AirGQL.GQLWrapper (
OutField (..),
outFieldToField,
InArgument (..),
inArgumentToArgument,
)
where
import Protolude (Maybe, Text)
import Language.GraphQL.Type (Value)
import Language.GraphQL.Type.In qualified as In
import Language.GraphQL.Type.Out qualified as Out
data OutField m = OutField
{ descriptionMb :: Maybe Text
, fieldType :: Out.Type m
, arguments :: In.Arguments
}
outFieldToField :: OutField m -> Out.Field m
outFieldToField outField =
Out.Field
outField.descriptionMb
outField.fieldType
outField.arguments
data InArgument = InArgument
{ argDescMb :: Maybe Text
, argType :: In.Type
, valueMb :: Maybe Value
}
inArgumentToArgument :: InArgument -> In.Argument
inArgumentToArgument inArgument =
In.Argument
inArgument.argDescMb
inArgument.argType
inArgument.valueMb