Module: Axel::ServiceResource::TyphoidExtensions
- Extended by:
- ActiveSupport::Concern
- Included in:
- Base
- Defined in:
- app/models/axel/service_resource/typhoid_extensions.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #after_build(response, error) ⇒ Object
- #attributes ⇒ Object
- #build_typhoid_request(options = {}) ⇒ Object
- #create_request(method = :post) ⇒ Object
- #default_request_options ⇒ Object
- #delete_request(method = :delete) ⇒ Object
- #envelope? ⇒ Boolean
- #load_values(hash = {}) ⇒ Object
- #merge_result ⇒ Object
- #object_request(method, body = nil) ⇒ Object
- #request_and_load(&block) ⇒ Object
-
#resource_exception ⇒ Object
Makes Typhoid::Resource#success check remote_errors.
- #update_request(method = :put) ⇒ Object
Instance Method Details
#after_build(response, error) ⇒ Object
74 75 76 77 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 74 def after_build(response, error) super self.remote_errors.status = response.code end |
#attributes ⇒ Object
79 80 81 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 79 def attributes @attributes ||= {}.with_indifferent_access end |
#build_typhoid_request(options = {}) ⇒ Object
54 55 56 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 54 def build_typhoid_request( = {}) self.class.build_typhoid_request request_uri, end |
#create_request(method = :post) ⇒ Object
42 43 44 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 42 def create_request(method = :post) object_request method, to_params.to_json end |
#default_request_options ⇒ Object
29 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 29 def ;end |
#delete_request(method = :delete) ⇒ Object
50 51 52 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 50 def delete_request(method = :delete) object_request method end |
#envelope? ⇒ Boolean
25 26 27 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 25 def envelope? payload.has_key?(:metadata) && payload.has_key?(:result) end |
#load_values(hash = {}) ⇒ Object
64 65 66 67 68 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 64 def load_values(hash = {}) self.payload, self.result, self., self.remote_errors = PayloadParser.new(hash).parsed merge_result self end |
#merge_result ⇒ Object
70 71 72 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 70 def merge_result self.attributes.deep_merge! result end |
#object_request(method, body = nil) ⇒ Object
58 59 60 61 62 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 58 def object_request(method, body = nil) = { method: method } [:body] = body if body build_typhoid_request () end |
#request_and_load(&block) ⇒ Object
31 32 33 34 35 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 31 def request_and_load(&block) .reset! remote_errors.reset! super end |
#resource_exception ⇒ Object
Makes Typhoid::Resource#success check remote_errors
38 39 40 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 38 def resource_exception remote_errors.exception || super end |
#update_request(method = :put) ⇒ Object
46 47 48 |
# File 'app/models/axel/service_resource/typhoid_extensions.rb', line 46 def update_request(method = :put) object_request method, to_params.to_json end |