Module: EasyTalk::ErrorFormatter::InstanceMethods

Defined in:
lib/easy_talk/error_formatter.rb

Overview

Instance methods mixed into EasyTalk::Model classes.

Provides convenient methods for formatting validation errors on model instances.

Instance Method Summary collapse

Instance Method Details

#validation_errors(format: nil) ⇒ Hash, Array

Format validation errors using the default or specified format.

Examples:

user.validation_errors
user.validation_errors(format: :rfc7807, title: 'User Error')

Parameters:

  • format (Symbol) (defaults to: nil)

    The output format (optional, uses config default)

  • options (Hash)

    Format-specific options

Returns:

  • (Hash, Array)

    The formatted errors



78
79
80
# File 'lib/easy_talk/error_formatter.rb', line 78

def validation_errors(format: nil, **)
  ErrorFormatter.format(errors, format: format, **)
end

#validation_errors_flatArray<Hash>

Format validation errors as a flat array.

Examples:

user.validation_errors_flat
# => [{ "field" => "name", "message" => "can't be blank", "code" => "blank" }]

Parameters:

  • options (Hash)

    Format options

Returns:

  • (Array<Hash>)

    Array of error objects



91
92
93
# File 'lib/easy_talk/error_formatter.rb', line 91

def validation_errors_flat(**)
  ErrorFormatter.format(errors, format: :flat, **)
end

#validation_errors_json_pointerArray<Hash>

Format validation errors with JSON Pointer paths.

Examples:

user.validation_errors_json_pointer
# => [{ "pointer" => "/properties/name", "message" => "can't be blank", "code" => "blank" }]

Parameters:

  • options (Hash)

    Format options

Returns:

  • (Array<Hash>)

    Array of error objects with pointer paths



104
105
106
# File 'lib/easy_talk/error_formatter.rb', line 104

def validation_errors_json_pointer(**)
  ErrorFormatter.format(errors, format: :json_pointer, **)
end

#validation_errors_jsonapiHash

Format validation errors according to JSON:API specification.

Examples:

user.validation_errors_jsonapi
user.validation_errors_jsonapi(title: 'Validation Error', source_prefix: '/data')

Parameters:

  • options (Hash)

    Format options

Returns:

  • (Hash)

    The JSON:API error object



138
139
140
# File 'lib/easy_talk/error_formatter.rb', line 138

def validation_errors_jsonapi(**)
  ErrorFormatter.format(errors, format: :jsonapi, **)
end

#validation_errors_rfc7807Hash

Format validation errors as RFC 7807 Problem Details.

Examples:

user.validation_errors_rfc7807
user.validation_errors_rfc7807(title: 'User Validation Failed', status: 400)

Parameters:

  • options (Hash)

    Format options

Returns:

  • (Hash)

    The Problem Details object



122
123
124
# File 'lib/easy_talk/error_formatter.rb', line 122

def validation_errors_rfc7807(**)
  ErrorFormatter.format(errors, format: :rfc7807, **)
end