class ITCAnalytics::UseCases::GetAvailableApplications
Attributes
itunesconnect_gateway[RW]
session_repository[RW]
Public Class Methods
new(session_repository:, itunesconnect_gateway:)
click to toggle source
# File lib/itc_analytics/use_cases/get_available_applications.rb, line 10 def initialize(session_repository:, itunesconnect_gateway:) @session_repository = session_repository @itunesconnect_gateway = itunesconnect_gateway end
Public Instance Methods
execute()
click to toggle source
# File lib/itc_analytics/use_cases/get_available_applications.rb, line 15 def execute session = @session_repository.get if session == nil || !session.valid? raise Exceptions::InvalidSession end results = @itunesconnect_gateway.get_applications_json( session_cookies: [session.account_cookie, session.itctx_cookie] ) obj = JSON.parse(results) if !obj.key?("results") raise Exceptions::NoResults end applications = obj["results"].map { |e| Domain::Entities::Application.new( itunes_app_id: e["adamId"], itunes_app_name: e["name"], is_bundle: e["is_bundle"], icon_url: e["icon_url"], asset_token: e["asset_token"], platforms: e["platforms"], is_enabled: e["is_enabled"], app_opt_in_rate: e["app_opt_in_rate"] ) } return applications rescue Interfaces::Gateways::Exceptions::ItunesUnauthorized => e @session_repository.save(nil) raise Exceptions::InvalidSession, "The session was invalid" end