Provide an internal function to add errors
The old function, addErrMsg, takes only a string with an error description, but more information is required for the execution errors: locations and path. addErrMsg should be deprecated after the switching to the new addError.
This commit is contained in:
		| @@ -21,6 +21,7 @@ import qualified Data.Text as Text | ||||
| import Language.GraphQL.AST (Name) | ||||
| import Language.GraphQL.Error | ||||
| import Language.GraphQL.Execute.Coerce | ||||
| import Language.GraphQL.Execute.Internal | ||||
| import Language.GraphQL.Execute.OrderedMap (OrderedMap) | ||||
| import qualified Language.GraphQL.Execute.OrderedMap as OrderedMap | ||||
| import qualified Language.GraphQL.Execute.Transform as Transform | ||||
| @@ -123,7 +124,7 @@ completeValue outputType@(Out.EnumBaseType enumType) _ (Type.Enum enum) = | ||||
|     let Type.EnumType _ _ enumMembers = enumType | ||||
|      in if HashMap.member enum enumMembers | ||||
|         then coerceResult outputType $ Enum enum | ||||
|         else addErrMsg "Enum value completion failed." | ||||
|         else addError $ Error "Enum value completion failed." [] [] | ||||
| completeValue (Out.ObjectBaseType objectType) fields result = | ||||
|     executeSelectionSet result objectType $ mergeSelectionSets fields | ||||
| completeValue (Out.InterfaceBaseType interfaceType) fields result | ||||
|   | ||||
							
								
								
									
										25
									
								
								src/Language/GraphQL/Execute/Internal.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/Language/GraphQL/Execute/Internal.hs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| {- This Source Code Form is subject to the terms of the Mozilla Public License, | ||||
|    v. 2.0. If a copy of the MPL was not distributed with this file, You can | ||||
|    obtain one at https://mozilla.org/MPL/2.0/. -} | ||||
|  | ||||
| {-# LANGUAGE DuplicateRecordFields #-} | ||||
| {-# LANGUAGE NamedFieldPuns #-} | ||||
|  | ||||
| module Language.GraphQL.Execute.Internal | ||||
|     ( addError | ||||
|     ) where | ||||
|  | ||||
| import Control.Monad.Trans.State (modify) | ||||
| import Control.Monad.Catch (MonadCatch) | ||||
| import Data.Sequence ((|>)) | ||||
| import Language.GraphQL.Error | ||||
| import Language.GraphQL.Execute.Coerce | ||||
| import Prelude hiding (null) | ||||
|  | ||||
| addError :: (Serialize a, MonadCatch m) => Error -> CollectErrsT m a | ||||
| addError error' = modify appender >> pure null | ||||
|   where | ||||
|    appender :: Resolution m -> Resolution m | ||||
|    appender resolution@Resolution{ errors } = resolution | ||||
|        { errors = errors |> error' | ||||
|        } | ||||
		Reference in New Issue
	
	Block a user