class Crowdin::Web::SendRequest
Attributes
request[R]
Public Class Methods
new(request, file_destination = nil)
click to toggle source
# File lib/crowdin-api/core/send_request.rb, line 8 def initialize(request, file_destination = nil) @request = request @file_destination = file_destination @errors = [] end
Public Instance Methods
perform()
click to toggle source
# File lib/crowdin-api/core/send_request.rb, line 14 def perform parse_response(process_request) end
Private Instance Methods
download_file(url)
click to toggle source
# File lib/crowdin-api/core/send_request.rb, line 54 def download_file(url) download = URI.parse(url).open destination = @file_destination IO.copy_stream(download, destination) destination rescue StandardError => e @errors << "Something went wrong while downloading file. Details - #{e.message}" end
fetch_response_data(doc)
click to toggle source
# File lib/crowdin-api/core/send_request.rb, line 46 def fetch_response_data(doc) if @file_destination && doc['data'].is_a?(Hash) && doc['data']['url'] download_file(doc['data']['url']) else doc end end
parse_response(response)
click to toggle source
# File lib/crowdin-api/core/send_request.rb, line 26 def parse_response(response) return @errors.join('; ') if @errors.any? begin if response if response.body.empty? response.code else parsed_body = JSON.parse(response.body) parsed_response = fetch_response_data(parsed_body) @errors.any? ? @errors.join('; ') : parsed_response end end rescue StandardError => e @errors << "Something went wrong while response processing. Details - #{e.message}" @errors.join('; ') end end
process_request()
click to toggle source
# File lib/crowdin-api/core/send_request.rb, line 20 def process_request request.send(request.method) rescue StandardError => e @errors << "Something went wrong while request processing. Details - #{e.message}" end