Sha256: ce62c40f31fbad64e7a1e5df2cdf8712e70a32df41df30d73214e2b87453b413
Contents?: true
Size: 1.4 KB
Versions: 2
Compression:
Stored size: 1.4 KB
Contents
module RestfulResource module RailsValidations module ClassMethods def put(id, data: {}, headers: {}, **params) begin super(id, data: data, headers: {}, **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) else result = data.merge(errors: errors) end result = result.merge(id: id) self.new(result) end end def post(data: {}, headers: {}, **params) with_validations(data: data) do super(data: data, headers: {}, **params) end end def get(params = {}) with_validations do super(params) end end private def with_validations(data: {}, &block) begin block.call 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) 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? end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
restful_resource-2.0.2 | lib/restful_resource/rails_validations.rb |
restful_resource-2.0.1 | lib/restful_resource/rails_validations.rb |