Class: Fastlane::Helper::AppstoreReviewsHelper
- Inherits:
-
Object
- Object
- Fastlane::Helper::AppstoreReviewsHelper
- Defined in:
- lib/fastlane/plugin/appstore_reviews/helper/appstore_reviews_helper.rb
Class Method Summary collapse
- .generateToken(params) ⇒ Object
- .getReviews(params, url = nil, reviews = []) ⇒ Object
- .getTimeFrame ⇒ Object
- .makeAPIrequest(url, token) ⇒ Object
- .should_call_more_pages(time_frame, last_review_date) ⇒ Object
- .show_message ⇒ Object
Class Method Details
.generateToken(params) ⇒ Object
17 18 19 20 |
# File 'lib/fastlane/plugin/appstore_reviews/helper/appstore_reviews_helper.rb', line 17 def self.generateToken(params) key = params[:key] return Spaceship::ConnectAPI::Token.create(**key) end |
.getReviews(params, url = nil, reviews = []) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/fastlane/plugin/appstore_reviews/helper/appstore_reviews_helper.rb', line 22 def self.getReviews(params, url=nil, reviews = []) token = params[:token] app_id = params[:app_id] time_frame = params[:time_frame] reviews_url = url if url.nil? reviews_url = "https://api.appstoreconnect.apple.com/v1/apps/#{app_id}/customerReviews?sort=-createdDate&limit=200" end puts "I am here" response = self.makeAPIrequest(reviews_url, token) parsed_json = JSON.parse(response) parsed_response = AppstoreReviews::Response.new(parsed_json) last_review = parsed_response.data.last last_review_on_page_date = last_review.attributes.created_date reviews.concat(parsed_response.data) if self.should_call_more_pages(time_frame, last_review_on_page_date) && !parsed_response.links.next_link.nil? self.getReviews(params, parsed_response.links.next_link, reviews) end return reviews end |
.getTimeFrame ⇒ Object
85 86 87 |
# File 'lib/fastlane/plugin/appstore_reviews/helper/appstore_reviews_helper.rb', line 85 def self.getTimeFrame return ['Today', 'Week', 'Month', 'Year'] end |
.makeAPIrequest(url, token) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/fastlane/plugin/appstore_reviews/helper/appstore_reviews_helper.rb', line 62 def self.makeAPIrequest(url, token) uri = URI(url) request = Net::HTTP::Get.new(uri) if token.expired? UI.("App Store Connect API token expired at #{token.expiration}... refreshing") token.refresh! end request['Authorization'] = "Bearer #{token.text}" response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http| http.request(request) end case response when Net::HTTPSuccess then return response.body else UI.user_error!("AppstoreConnect API Request finished with error code: #{response.code}") end end |
.should_call_more_pages(time_frame, last_review_date) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/fastlane/plugin/appstore_reviews/helper/appstore_reviews_helper.rb', line 47 def self.should_call_more_pages(time_frame, last_review_date) case time_frame when 'Today' return last_review_date == Date.today when 'Week' return last_review_date >= Date.today - 7 && last_review_date <= Date.today when 'Month' return last_review_date >= Date.today - 30 && last_review_date <= Date.today when 'Year' return last_review_date >= Date.today - 365 && last_review_date <= Date.today else return true end end |
.show_message ⇒ Object
13 14 15 |
# File 'lib/fastlane/plugin/appstore_reviews/helper/appstore_reviews_helper.rb', line 13 def self. UI.("Hello from the appstore_reviews plugin helper!") end |