Module: GoogleReviews::ApiRequest
- Defined in:
- lib/google_reviews/api_request.rb
Overview
Make API request to fetch google reviews
Class Method Summary collapse
- .build_http_client(url) ⇒ Object
- .build_request(url) ⇒ Object
- .error_message(response) ⇒ Object
- .execute(url) ⇒ Object
- .parsed_response(response) ⇒ Object
Class Method Details
.build_http_client(url) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/google_reviews/api_request.rb', line 22 def build_http_client(url) uri = URI(url) https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true https end |
.build_request(url) ⇒ Object
30 31 32 33 34 |
# File 'lib/google_reviews/api_request.rb', line 30 def build_request(url) uri = URI(url) Net::HTTP::Get.new(uri.request_uri) end |
.error_message(response) ⇒ Object
42 43 44 |
# File 'lib/google_reviews/api_request.rb', line 42 def (response) I18n.t("messages.failed_request", code: response.code, message: response.) end |
.execute(url) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/google_reviews/api_request.rb', line 7 def execute(url) http_request = build_request(url) request_client = build_http_client(url) response = request_client.request(http_request) raise ApiError, unless response.is_a?(Net::HTTPSuccess) parsed_response(response) rescue StandardError => e raise ApiError, I18n.t("messages.api_request_error", exception: e) end |
.parsed_response(response) ⇒ Object
36 37 38 39 40 |
# File 'lib/google_reviews/api_request.rb', line 36 def parsed_response(response) JSON.parse(response.body) rescue JSON::ParserError raise ApiError, I18n.t("messages.parser_error") end |