graphql-engine/server/src-lib/Hasura/GraphQL/Context.hs
Robert 11a454c2d6 server, pro: actually reformat the code-base using ormolu
This commit applies ormolu to the whole Haskell code base by running `make format`.

For in-flight branches, simply merging changes from `main` will result in merge conflicts.
To avoid this, update your branch using the following instructions. Replace `<format-commit>`
by the hash of *this* commit.

$ git checkout my-feature-branch
$ git merge <format-commit>^    # and resolve conflicts normally
$ make format
$ git commit -a -m "reformat with ormolu"
$ git merge -s ours post-ormolu

https://github.com/hasura/graphql-engine-mono/pull/2404

GitOrigin-RevId: 75049f5c12f430c615eafb4c6b8e83e371e01c8e
2021-09-23 22:57:37 +00:00

39 lines
1.2 KiB
Haskell

module Hasura.GraphQL.Context
( RoleContext (..),
GQLContext (..),
ParserFn,
)
where
import Data.Aeson qualified as J
import Data.Aeson.TH
import Hasura.GraphQL.Parser
import Hasura.Prelude
import Hasura.RQL.IR qualified as IR
import Language.GraphQL.Draft.Syntax qualified as G
-- | For storing both a normal GQLContext and one for the backend variant.
-- Currently, this is to enable the backend variant to have certain insert
-- permissions which the frontend variant does not.
data RoleContext a = RoleContext
{ -- | The default context for normal sessions
_rctxDefault :: !a,
-- | The context for sessions with backend privilege.
_rctxBackend :: !(Maybe a)
}
deriving (Show, Eq, Functor, Foldable, Traversable)
$(deriveToJSON hasuraJSON ''RoleContext)
data GQLContext = GQLContext
{ gqlQueryParser :: ParserFn (InsOrdHashMap G.Name (IR.QueryRootField UnpreparedValue)),
gqlMutationParser :: Maybe (ParserFn (InsOrdHashMap G.Name (IR.MutationRootField UnpreparedValue)))
}
instance J.ToJSON GQLContext where
toJSON GQLContext {} = J.String "The GraphQL schema parsers"
type ParserFn a =
G.SelectionSet G.NoFragments Variable ->
Either (NESeq ParseError) a