diff --git a/app/helpers/validation_error_serializer.rb b/app/helpers/validation_error_serializer.rb new file mode 100644 index 0000000..730f0b6 --- /dev/null +++ b/app/helpers/validation_error_serializer.rb @@ -0,0 +1,33 @@ +class ValidationErrorSerializer + def initialize(record, field, details) + @record = record + @field = field + @details = details + end + + def serialize + { + resource: resource, + field: field, + code: code + } + end + + private + + def resource + @record.class.to_s + end + + def field + @field.to_s + end + + def code + @details[:error].to_s + end + + def underscored_resource_name + @record.class.to_s.gsub('::', '').underscore + end +end \ No newline at end of file diff --git a/app/helpers/validation_errors_serializer.rb b/app/helpers/validation_errors_serializer.rb new file mode 100644 index 0000000..af2affa --- /dev/null +++ b/app/helpers/validation_errors_serializer.rb @@ -0,0 +1,16 @@ + +class ValidationErrorsSerializer + attr_reader :record + + def initialize(record) + @record = record + end + + def serialize + record.errors.details.map do |field, details| + details.map do |error_details| + ValidationErrorSerializer.new(record, field, error_details).serialize + end + end.flatten + end +end \ No newline at end of file