class GraphqlRails::Controller::Request::FormatErrors
Converts user provided free-form errors in to meaningfull graphql error classes
Attributes
not_formatted_errors[R]
Public Class Methods
new(not_formatted_errors:)
click to toggle source
# File lib/graphql_rails/controller/request/format_errors.rb, line 15 def initialize(not_formatted_errors:) @not_formatted_errors = not_formatted_errors end
Public Instance Methods
call()
click to toggle source
# File lib/graphql_rails/controller/request/format_errors.rb, line 19 def call if validation_errors? formatted_validation_errors else not_formatted_errors.map { |error| format_error(error) } end end
Private Instance Methods
format_error(error)
click to toggle source
# File lib/graphql_rails/controller/request/format_errors.rb, line 43 def format_error(error) if error.is_a?(String) ExecutionError.new(error) elsif error.is_a?(GraphQL::ExecutionError) error elsif CustomExecutionError.accepts?(error) message = error[:message] || error['message'] CustomExecutionError.new(message, error.except(:message, 'message')) elsif error.respond_to?(:message) ExecutionError.new(error.message) end end
formatted_validation_errors()
click to toggle source
# File lib/graphql_rails/controller/request/format_errors.rb, line 37 def formatted_validation_errors not_formatted_errors.map do |field, message| ValidationError.new(message, field) end end
validation_errors?()
click to toggle source
# File lib/graphql_rails/controller/request/format_errors.rb, line 31 def validation_errors? defined?(ActiveModel) && defined?(ActiveModel::Errors) && not_formatted_errors.is_a?(ActiveModel::Errors) end