From c81ddb03353c65abaea1778159b0a7c37ffe38a8 Mon Sep 17 00:00:00 2001 From: Danny Navarro Date: Fri, 5 Feb 2016 12:32:35 +0100 Subject: Introduce `graphql` function This simplifies Attoparsec parsing when executing a GraphQL query. --- Data/GraphQL.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Data/GraphQL.hs (limited to 'Data/GraphQL.hs') diff --git a/Data/GraphQL.hs b/Data/GraphQL.hs new file mode 100644 index 0000000..d18ff2f --- /dev/null +++ b/Data/GraphQL.hs @@ -0,0 +1,16 @@ +module Data.GraphQL where + +import Control.Applicative (Alternative, empty) + +import Data.Text (Text) + +import qualified Data.Aeson as Aeson +import qualified Data.Attoparsec.Text as Attoparsec + +import Data.GraphQL.Execute +import Data.GraphQL.Parser +import Data.GraphQL.Schema + +graphql :: (Alternative m, Monad m) => Schema m -> Text -> m Aeson.Value +graphql schema = either (const empty) (execute schema) + . Attoparsec.parseOnly document -- cgit v1.2.3