Module: JSONAPIonify::Api::Resource::Caller
- Defined in:
- lib/jsonapionify/api/resource/caller.rb
Instance Method Summary collapse
Instance Method Details
#call ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/jsonapionify/api/resource/caller.rb', line 5 def call do_respond = proc { __respond } do_request = proc { __request } response = @callbacks ? run_callbacks(:request, &do_request) : do_request.call rescue Errors::RequestError => e raise e unless errors.present? response = error_response rescue Errors::CacheHit JSONAPIonify.logger.debug "Cache Hit: #{@cache_options[:key]}" response = self.class.cache_store.read @cache_options[:key] rescue Exception => exception response = rescued_response exception, @__context, do_respond ensure self.class.cache_store.delete @cache_options[:key] unless !response || response[0] < 300 end |
#response_definition ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/jsonapionify/api/resource/caller.rb', line 21 def response_definition extension = @__context.request.extension responses = action.responses response = nil @__context.request.accept.each do |accept| response = responses.find { |r| r.accept_with_matcher? @__context } || responses.find { |r| r.accept_with_header? accept: accept, extension: extension } break if response end response || error_now(:not_acceptable) end |