Module: GoogleReviews::Utils

Defined in:
lib/google_reviews/utils.rb

Overview

Various utility methods

Class Method Summary collapse

Class Method Details

.encoded_place_name(place_name) ⇒ Object



47
48
49
# File 'lib/google_reviews/utils.rb', line 47

def encoded_place_name(place_name)
  URI.encode_www_form_component(place_name)
end

.execute_place_id_request(url) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/google_reviews/utils.rb', line 33

def execute_place_id_request(url)
  data = ApiRequest.execute(url)

  error = I18n.t("messages.search_id_api_error", exception: data["status"])
  return GoogleReviews::Response.new(status: data["status"], error: error) unless data["status"] == "OK"

  reviews = data["result"]["reviews"]
  return GoogleReviews::Response.new if reviews.nil? || reviews.empty?

  GoogleReviews::Response.new(data: formatted_reviews_data(reviews))
end

.execute_place_name_request(url) ⇒ Object

Raises:



25
26
27
28
29
30
31
# File 'lib/google_reviews/utils.rb', line 25

def execute_place_name_request(url)
  data = ApiRequest.execute(url)

  raise ApiError, I18n.t("messages.search_place_api_error", exception: data["status"]) unless data["status"] == "OK"

  data["results"]
end

.formatted_reviews_data(reviews) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/google_reviews/utils.rb', line 17

def formatted_reviews_data(reviews)
  return [] if reviews.nil? || reviews.empty?

  reviews.map do |review|
    Review.new(review)
  end
end

.request_uri(api_key, place_id: nil, place_name: nil) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/google_reviews/utils.rb', line 9

def request_uri(api_key, place_id: nil, place_name: nil)
  if place_id
    "#{PLACE_ID_SEARCH_BASE_URI}?place_id=#{place_id}&fields=reviews&key=#{api_key}"
  elsif place_name
    "#{PLACE_TEXT_SEARCH_BASE_URI}?query=#{encoded_place_name(place_name)}&key=#{api_key}"
  end
end