Class: Decidim::Elections::VoteFlow
- Inherits:
-
Object
- Object
- Decidim::Elections::VoteFlow
show all
- Defined in:
- app/services/decidim/elections/vote_flow.rb
Overview
Service that encapsulates the vote flow used for elections
Defined Under Namespace
Classes: VoteCheckResult
Instance Method Summary
collapse
Constructor Details
#initialize(election) ⇒ VoteFlow
Returns a new instance of VoteFlow.
7
8
9
|
# File 'app/services/decidim/elections/vote_flow.rb', line 7
def initialize(election)
@election = election
end
|
Instance Method Details
#valid_received_data? ⇒ Boolean
34
35
36
|
# File 'app/services/decidim/elections/vote_flow.rb', line 34
def valid_received_data?
valid_token_common_data? && valid_token_flow_data? && valid_voter_id?
end
|
#voter_from_token(params) ⇒ Object
11
12
13
14
15
16
|
# File 'app/services/decidim/elections/vote_flow.rb', line 11
def voter_from_token(params)
@received_voter_token = params[:voter_token]
@received_voter_id = params[:voter_id]
received_voter_token.present? && received_voter_id.present?
end
|
#voter_id ⇒ Object
18
19
20
|
# File 'app/services/decidim/elections/vote_flow.rb', line 18
def voter_id
@voter_id ||= calculate_voter_id(voter_token_data)
end
|
#voter_id_token(a_voter_id = nil) ⇒ Object
22
23
24
|
# File 'app/services/decidim/elections/vote_flow.rb', line 22
def voter_id_token(a_voter_id = nil)
@voter_id_token ||= tokenizer.hex_digest(a_voter_id || voter_id)
end
|
#voter_token ⇒ Object
26
27
28
29
30
31
32
|
# File 'app/services/decidim/elections/vote_flow.rb', line 26
def voter_token
@voter_token ||= received_voter_token ||
message_encryptor.encrypt_and_sign(
voter_token_data.to_json,
expires_at: Decidim::Elections.voter_token_expiration_minutes.minutes.from_now
)
end
|