Sha256: 56f1fb620ab98142aee1ff893af95f1b436c0643d7c0e967b93aea35f237dc48
Contents?: true
Size: 1.27 KB
Versions: 3
Compression:
Stored size: 1.27 KB
Contents
module RestfulResource module RailsValidations module ClassMethods def put(id, data: {}, **params) begin super(id, data: data, **params) rescue HttpClient::UnprocessableEntity => e errors = parse_json(e.response.body) result = nil if errors.is_a?(Hash) && errors.has_key?('errors') result = data.merge(errors) elsif errors.is_a?(Array) result = data.merge(errors: errors) else result = data.merge(errors: [errors]) end self.new(result) end end def post(data: {}, **params) begin super(data: data, **params) rescue HttpClient::UnprocessableEntity => e errors = parse_json(e.response.body) result = nil if errors.is_a?(Hash) && errors.has_key?('errors') result = data.merge(errors) elsif errors.is_a?(Array) result = data.merge(errors: errors) else result = data.merge(errors: [errors]) end self.new(result) end end end def self.included(base) base.extend(ClassMethods) end def valid? @inner_object.errors.nil? || @inner_object.errors.count == 0 end end end
Version data entries
3 entries across 3 versions & 1 rubygems