Class: CoPlan::EditSession
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- CoPlan::EditSession
- Defined in:
- app/models/coplan/edit_session.rb
Constant Summary collapse
- STATUSES =
%w[open committed expired cancelled failed].freeze
- ACTOR_TYPES =
%w[human local_agent cloud_persona].freeze
- LOCAL_AGENT_TTL =
10.minutes
- CLOUD_PERSONA_TTL =
30.minutes
Class Method Summary collapse
- .ransackable_associations(auth_object = nil) ⇒ Object
- .ransackable_attributes(auth_object = nil) ⇒ Object
Instance Method Summary collapse
- #active? ⇒ Boolean
- #add_operation(op) ⇒ Object
- #committed? ⇒ Boolean
- #expired? ⇒ Boolean
- #has_operations? ⇒ Boolean
- #open? ⇒ Boolean
Class Method Details
.ransackable_associations(auth_object = nil) ⇒ Object
51 52 53 |
# File 'app/models/coplan/edit_session.rb', line 51 def self.ransackable_associations(auth_object = nil) %w[plan plan_version] end |
.ransackable_attributes(auth_object = nil) ⇒ Object
47 48 49 |
# File 'app/models/coplan/edit_session.rb', line 47 def self.ransackable_attributes(auth_object = nil) %w[id status actor_type actor_id plan_id base_revision created_at] end |
Instance Method Details
#active? ⇒ Boolean
26 27 28 |
# File 'app/models/coplan/edit_session.rb', line 26 def active? open? && (expires_at.nil? || expires_at > Time.current) end |
#add_operation(op) ⇒ Object
42 43 44 45 |
# File 'app/models/coplan/edit_session.rb', line 42 def add_operation(op) self.operations_json = operations_json + [op] save! end |
#committed? ⇒ Boolean
30 31 32 |
# File 'app/models/coplan/edit_session.rb', line 30 def committed? status == "committed" end |
#expired? ⇒ Boolean
34 35 36 |
# File 'app/models/coplan/edit_session.rb', line 34 def expired? open? && expires_at < Time.current end |
#has_operations? ⇒ Boolean
38 39 40 |
# File 'app/models/coplan/edit_session.rb', line 38 def has_operations? operations_json.present? && operations_json.any? end |
#open? ⇒ Boolean
22 23 24 |
# File 'app/models/coplan/edit_session.rb', line 22 def open? status == "open" end |