Module: EasyTalk::ErrorFormatter
- Defined in:
- lib/easy_talk/error_formatter.rb,
lib/easy_talk/error_formatter/base.rb,
lib/easy_talk/error_formatter/flat.rb,
lib/easy_talk/error_formatter/jsonapi.rb,
lib/easy_talk/error_formatter/rfc7807.rb,
lib/easy_talk/error_formatter/json_pointer.rb,
lib/easy_talk/error_formatter/path_converter.rb,
lib/easy_talk/error_formatter/error_code_mapper.rb
Overview
Module for formatting ActiveModel validation errors into standardized formats.
Provides multiple output formats for API responses:
:flat- Simple flat array of field/message/code objects:json_pointer- Array with JSON Pointer (RFC 6901) paths:rfc7807- RFC 7807 Problem Details format:jsonapi- JSON:API specification error format
Defined Under Namespace
Modules: InstanceMethods Classes: Base, ErrorCodeMapper, Flat, JsonPointer, Jsonapi, PathConverter, Rfc7807
Constant Summary collapse
- FORMATTERS =
Map of format symbols to formatter classes
{ flat: Flat, json_pointer: JsonPointer, rfc7807: Rfc7807, jsonapi: Jsonapi }.freeze
Class Method Summary collapse
-
.format(errors, format: nil, **options) ⇒ Hash, Array
Format validation errors using the specified format.
Class Method Details
.format(errors, format: nil, **options) ⇒ Hash, Array
Format validation errors using the specified format.
54 55 56 57 58 59 60 61 |
# File 'lib/easy_talk/error_formatter.rb', line 54 def format(errors, format: nil, **) format ||= EasyTalk.configuration.default_error_format formatter_class = FORMATTERS[format.to_sym] raise ArgumentError, "Unknown error format: #{format}. Valid formats: #{FORMATTERS.keys.join(', ')}" unless formatter_class formatter_class.new(errors, ).format end |