Class: PartyResearch::FindingApplier
- Inherits:
-
Object
- Object
- PartyResearch::FindingApplier
- Defined in:
- app/services/party_research/finding_applier.rb
Defined Under Namespace
Classes: Result
Class Method Summary collapse
Instance Method Summary collapse
- #accept ⇒ Object
-
#initialize(finding, accepted_by) ⇒ FindingApplier
constructor
A new instance of FindingApplier.
Constructor Details
#initialize(finding, accepted_by) ⇒ FindingApplier
Returns a new instance of FindingApplier.
32 33 34 35 36 |
# File 'app/services/party_research/finding_applier.rb', line 32 def initialize(finding, accepted_by) @finding = finding @accepted_by = accepted_by @party = finding.party_research_run.party end |
Class Method Details
.accept(finding:, accepted_by:) ⇒ Object
20 21 22 |
# File 'app/services/party_research/finding_applier.rb', line 20 def accept(finding:, accepted_by:) new(finding, accepted_by).accept end |
.reject(finding:, rejected_by:) ⇒ Object
24 25 26 27 28 29 |
# File 'app/services/party_research/finding_applier.rb', line 24 def reject(finding:, rejected_by:) return Result.new(success: false, error: "already #{finding.state}") unless finding.state == 'pending' finding.update!(state: 'rejected', reviewed_by: rejected_by, reviewed_at: Time.current) Result.new(success: true, error: nil) end |
Instance Method Details
#accept ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'app/services/party_research/finding_applier.rb', line 38 def accept return Result.new(success: false, error: "already #{@finding.state}") unless @finding.state == 'pending' ActiveRecord::Base.transaction do apply_by_category @finding.update!( state: 'accepted', reviewed_by: @accepted_by, reviewed_at: Time.current, applied_at: Time.current ) end Result.new(success: true, error: nil) rescue ActiveRecord::RecordInvalid => e Result.new(success: false, error: e.record.errors..to_sentence) rescue StandardError => e Result.new(success: false, error: e.) end |