Пример #1
0
        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()));
        }
Пример #2
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()));
        }
Пример #3
0
        private IErrorBuilder CreateErrorFromException(Exception exception)
        {
            IErrorBuilder builder = ErrorBuilder.New()
                                    .SetMessage("Unexpected Execution Error");

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

            return(builder);
        }
Пример #4
0
        private void CreateError(IMiddlewareContext context, Exception ex = default)
        {
            IErrorBuilder errorBuilder = ErrorBuilder.New()
                                         .SetMessage("NotAuthorized")
                                         .SetPath(context.Path)
                                         .AddLocation(context.FieldSelection);

            if (ex != default)
            {
                errorBuilder.SetException(ex);
            }

            context.Result = errorBuilder.Build();
        }
Пример #5
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);

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

            return(new GraphQLException(errorBuilder.Build()));
        }