Class: Decidim::Elections::VoteFlow
- Inherits:
-
Object
- Object
- Decidim::Elections::VoteFlow
- Defined in:
- decidim-elections/app/services/decidim/elections/vote_flow.rb
Overview
Service that encapsulates the vote flow used for elections
Direct Known Subclasses
Defined Under Namespace
Classes: VoteCheckResult
Instance Method Summary collapse
-
#initialize(election) ⇒ VoteFlow
constructor
A new instance of VoteFlow.
- #valid_received_data? ⇒ Boolean
- #voter_from_token(params) ⇒ Object
- #voter_id ⇒ Object
- #voter_id_token(a_voter_id = nil) ⇒ Object
- #voter_token ⇒ Object
Constructor Details
#initialize(election) ⇒ VoteFlow
Returns a new instance of VoteFlow.
7 8 9 |
# File 'decidim-elections/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 'decidim-elections/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 'decidim-elections/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 'decidim-elections/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 'decidim-elections/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 'decidim-elections/app/services/decidim/elections/vote_flow.rb', line 26 def voter_token @voter_token ||= received_voter_token || .encrypt_and_sign( voter_token_data.to_json, expires_at: Decidim::Elections.voter_token_expiration_minutes.minutes.from_now ) end |