class ITCAnalytics::Interfaces::Gateways::ItunesConnect
Public Class Methods
new(http_controller:, apple_widget_key:)
click to toggle source
# File lib/itc_analytics/interfaces/gateways/itunesconnect.rb, line 8 def initialize(http_controller:, apple_widget_key:) @http_controller = http_controller @apple_widget_key = apple_widget_key end
Public Instance Methods
execute_metrics_query(query:)
click to toggle source
# File lib/itc_analytics/interfaces/gateways/itunesconnect.rb, line 63 def execute_metrics_query(query:) url = "https://analytics.itunes.apple.com/analytics/api/v1/data/time-series" post_body = query.assemble_body.to_json result = @http_controller.post(url: url, headers: get_headers([query.session.account_cookie, query.session.itctx_cookie]), post_body: post_body) return result_body(result) end
get_api_url(url:, session_cookies:)
click to toggle source
# File lib/itc_analytics/interfaces/gateways/itunesconnect.rb, line 53 def get_api_url(url:, session_cookies:) result = @http_controller.get(url: url, headers: get_headers(session_cookies)) return result_body(result) end
get_applications_json(session_cookies:)
click to toggle source
# File lib/itc_analytics/interfaces/gateways/itunesconnect.rb, line 58 def get_applications_json(session_cookies:) url = 'https://analytics.itunes.apple.com/analytics/api/v1/app-info/app' return get_api_url(url: url, session_cookies: session_cookies) end
get_headers(get_cookies)
click to toggle source
# File lib/itc_analytics/interfaces/gateways/itunesconnect.rb, line 34 def get_headers(get_cookies) Hash["Content-Type" => "application/json;charset=UTF-8", "Accept" => "application/json, text/plain, */*", "Origin" => "https://analytics.itunes.apple.com", "X-Requested-By" => "analytics.itunes.apple.com", "Referer" => "https://analytics.itunes.apple.com/", "Cookie" => get_cookies] end
result_body(result)
click to toggle source
# File lib/itc_analytics/interfaces/gateways/itunesconnect.rb, line 43 def result_body(result) if result["error"] if result["code"] == 401 raise Exceptions::ItunesUnauthorized, "Unauthorized call to iTunesConnect #{result['message']}" end raise Exceptions::ItunesRequestFailure, "iTunesConnect not responding to #{result['message']}" end return result["body"] end