lib/link_shrink/request.rb in link_shrink-0.0.6 vs lib/link_shrink/request.rb in link_shrink-0.0.7

- old
+ new

@@ -8,54 +8,38 @@ base.extend self end module_function - def process_request(url, options, shrinker = LinkShrink::Config.api) - parse(request(url, shrinker).body, options, shrinker) + def process_request(url, shrinker = LinkShrink::Config.api) + parse(request(url, shrinker).body, shrinker) end - def parse(response, options, shrinker) + def parse(response, shrinker) if shrinker.content_type.eql?('text/plain') response else - process_response(response, options, shrinker) + process_response(response, shrinker) end + rescue + "Error #{response}" end def process_parse_options(parsed_json, shrinker) if shrinker.collection_key && shrinker.url_key - parsed_json.fetch(shrinker.collection_key).fetch(shrinker.url_key) + parsed_json + .fetch(shrinker.collection_key) + .fetch(shrinker.url_key) else parsed_json.fetch(shrinker.url_key) end + rescue + parsed_json.fetch(shrinker.error_key) { 'Error parsing the request!'} end - def process_response(response, options, shrinker, json = JSONParser) - option = Options.new(options) + def process_response(response, shrinker, json = JSONParser) parsed_json = json.parse_json(response) - plain = process_parse_options(parsed_json, shrinker.class) - - if option.json? && option.qr_code? - if option.image_size? - return parsed_json.merge(qr_code: shrinker.generate_chart_url(plain, options.fetch(:image_size))).to_json - end - return parsed_json.merge(qr_code: shrinker.generate_chart_url(plain)).to_json - end - - case - when option.json? - json.cleanup_json(response) - when option.qr_code? - if option.image_size? - return shrinker.generate_chart_url(plain, options.fetch(:image_size)) - end - shrinker.generate_chart_url(plain) - when option.image_size? - shrinker.generate_chart_url(plain, options.fetch(:image_size)) - else - plain - end + process_parse_options(parsed_json, shrinker.class) end # Calls URL API # @see LinkShrink::Shrinkers::Base#api_url # @see LinkShrink::Shrinkers::Base#body_parameters