コード例 #1
0
        public static GraphQLException VariableValueInvalidType(
            VariableDefinitionNode variableDefinition,
            Exception?exception = null)
        {
            IErrorBuilder errorBuilder = ErrorBuilder.New()
                                         .SetMessage(
                "Variable `{0}` got an invalid value.",
                variableDefinition.Variable.Name.Value)
                                         .SetCode(ErrorCodes.Execution.InvalidType)
                                         .SetExtension("variable", variableDefinition.Variable.Name.Value)
                                         .AddLocation(variableDefinition);

            switch (exception)
            {
            case ScalarSerializationException ex:
                errorBuilder.SetExtension("scalarError", ex.Message);
                break;

            case InputObjectSerializationException ex:
                errorBuilder.SetExtension("inputObjectError", ex.Message);
                break;

            default:
                errorBuilder.SetException(exception);
                break;
            }

            return(new GraphQLException(errorBuilder.Build()));
        }
コード例 #2
0
ファイル: ThrowHelper.cs プロジェクト: AradAral/hotchocolate
        public static GraphQLException VariableValueInvalidType(
            VariableDefinitionNode variableDefinition,
            Exception?exception = null)
        {
            var underlyingError = exception is SerializationException serializationException
                ? serializationException.Message
                : null;

            IErrorBuilder errorBuilder = ErrorBuilder.New()
                                         .SetMessage(
                ThrowHelper_VariableValueInvalidType_Message,
                variableDefinition.Variable.Name.Value)
                                         .SetCode(ErrorCodes.Execution.InvalidType)
                                         .SetExtension("variable", variableDefinition.Variable.Name.Value)
                                         .AddLocation(variableDefinition);

            if (exception is not null)
            {
                errorBuilder.SetException(exception);
            }

            if (underlyingError is not null)
            {
                errorBuilder.SetExtension(nameof(underlyingError), underlyingError);
            }

            return(new GraphQLException(errorBuilder.Build()));
        }
 public static void Extended(IErrorBuilder errorBuilder, ErrorMappingContext mappingContext)
 {
     errorBuilder
     .SetExtension(ExtensionKeys.AttemptedValueKey, mappingContext.ValidationFailure.AttemptedValue)
     .SetExtension(ExtensionKeys.CustomStateKey, mappingContext.ValidationFailure.CustomState)
     .SetExtension(
         ExtensionKeys.FormattedMessagePlaceholderValuesKey,
         mappingContext.ValidationFailure.FormattedMessagePlaceholderValues);
 }
 public static void Details(IErrorBuilder errorBuilder, ErrorMappingContext mappingContext)
 {
     errorBuilder
     .SetExtension(ExtensionKeys.ValidatorKey, mappingContext.ValidationFailure.ErrorCode)
     .SetExtension(ExtensionKeys.FieldKey, mappingContext.MiddlewareContext.Field.Name)
     .SetExtension(ExtensionKeys.ArgumentKey, mappingContext.Argument.Name)
     .SetExtension(ExtensionKeys.PropertyKey, mappingContext.ValidationFailure.PropertyName)
     .SetExtension(ExtensionKeys.SeverityKey, mappingContext.ValidationFailure.Severity);
 }
コード例 #5
0
 public static IErrorBuilder SetFragmentName(
     this IErrorBuilder errorBuilder,
     ISyntaxNode node)
 {
     if (node.Kind == SyntaxKind.FragmentDefinition)
     {
         errorBuilder.SetExtension("fragment", ((FragmentDefinitionNode)node).Name.Value);
     }
     return(errorBuilder);
 }
コード例 #6
0
ファイル: ErrorHandler.cs プロジェクト: xgame92/hotchocolate
        private IErrorBuilder CreateErrorFromException(Exception exception)
        {
            IErrorBuilder builder = ErrorBuilder.New()
                                    .SetMessage("Unexpected Execution Error")
                                    .SetException(exception);

            if (_includeExceptionDetails)
            {
                builder
                .SetExtension("message", exception.Message)
                .SetExtension("stackTrace", exception.StackTrace);
            }

            return(builder);
        }
コード例 #7
0
ファイル: ErrorHandler.cs プロジェクト: yuriypts/hotchocolate
        private IErrorBuilder CreateErrorFromException(Exception exception)
        {
            IErrorBuilder builder = ErrorBuilder.New()
                                    .SetMessage(CoreResources.ErrorHandler_UnexpectedError)
                                    .SetException(exception);

            if (_includeExceptionDetails)
            {
                builder
                .SetExtension(_messageProperty, exception.Message)
                .SetExtension(_stackTraceProperty, exception.StackTrace);
            }

            return(builder);
        }
コード例 #8
0
 public static IErrorBuilder SpecifiedBy(
     this IErrorBuilder errorBuilder,
     string section) =>
 errorBuilder.SetExtension(
     "specifiedBy",
     "http://spec.graphql.org/June2018/#" + section);
コード例 #9
0
 /// <summary>
 ///     Add problem details to the error
 /// </summary>
 /// <param name="error"></param>
 /// <param name="data"></param>
 /// <returns></returns>
 public static IErrorBuilder WithProblemDetails(this IErrorBuilder error, IProblemDetailsData data)
 {
     error.SetExtension("type", "ProblemDetails");
     if (data.Title is { })