Class: ITCAnalytics::UseCases::Login

Inherits:
Object
  • Object
show all
Defined in:
lib/itc_analytics/use_cases/login.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username:, password:, session_repository:, itunesconnect_gateway:) ⇒ Login

Returns a new instance of Login.



13
14
15
16
17
18
19
20
21
22
# File 'lib/itc_analytics/use_cases/login.rb', line 13

def initialize(username:, password:, session_repository:, itunesconnect_gateway:)
	@username = username
	@password = password 
	@session_repository = session_repository
	@itunesconnect_gateway = itunesconnect_gateway
	@create_new_session_use_case = UseCases::CreateNewSession.new(
		username: @username,
		password: @password,
		itunesconnect_gateway: @itunesconnect_gateway)
end

Instance Attribute Details

#create_new_session_use_caseObject

Returns the value of attribute create_new_session_use_case.



7
8
9
# File 'lib/itc_analytics/use_cases/login.rb', line 7

def create_new_session_use_case
  @create_new_session_use_case
end

#itunesconnect_gatewayObject

Returns the value of attribute itunesconnect_gateway.



7
8
9
# File 'lib/itc_analytics/use_cases/login.rb', line 7

def itunesconnect_gateway
  @itunesconnect_gateway
end

#passwordObject

Returns the value of attribute password.



7
8
9
# File 'lib/itc_analytics/use_cases/login.rb', line 7

def password
  @password
end

#session_repositoryObject

Returns the value of attribute session_repository.



7
8
9
# File 'lib/itc_analytics/use_cases/login.rb', line 7

def session_repository
  @session_repository
end

#usernameObject

Returns the value of attribute username.



7
8
9
# File 'lib/itc_analytics/use_cases/login.rb', line 7

def username
  @username
end

Instance Method Details

#executeObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/itc_analytics/use_cases/login.rb', line 24

def execute
	existing = @session_repository.get
	unless existing.nil? || ! existing.valid?
		return true 
	end

	existing = @create_new_session_use_case.execute  

	if existing.nil? || ! existing.valid?
		return false 
	end 

	@session_repository.save(existing)
	return true
end