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
|