Class: ExternalServices::ApiAction
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ExternalServices::ApiAction
- Defined in:
- app/models/external_services/api_action.rb
Class Method Summary collapse
Instance Method Summary collapse
- #api_disabled? ⇒ Boolean
- #change_external_id? ⇒ Boolean
- #execute! ⇒ Object
- #initiator_class ⇒ Object
- #job_class ⇒ Object
- #kick_active_job ⇒ Object
- #processed? ⇒ Boolean
- #set_processed! ⇒ Object
Class Method Details
.perform_unprocessed ⇒ Object
52 53 54 55 56 |
# File 'app/models/external_services/api_action.rb', line 52 def self.perform_unprocessed Rails.logger.info "Running unprocessed #{self.class.name.demodulize} api actions..." unprocessed.each(&:kick_active_job) end |
Instance Method Details
#api_disabled? ⇒ Boolean
34 35 36 |
# File 'app/models/external_services/api_action.rb', line 34 def api_disabled? initiator_class.send(:"#{self.class.to_s.demodulize.underscore}_api_disabled") end |
#change_external_id? ⇒ Boolean
38 39 40 |
# File 'app/models/external_services/api_action.rb', line 38 def change_external_id? ['change_external_id'] end |
#execute! ⇒ Object
58 59 60 |
# File 'app/models/external_services/api_action.rb', line 58 def execute! raise NotImplementedError end |
#initiator_class ⇒ Object
29 30 31 32 |
# File 'app/models/external_services/api_action.rb', line 29 def initiator_class # Need to use initiator object for STI in polymorphic.. But still will be bugs with deleted STI object initiator.try(:class) || initiator_type.constantize end |
#job_class ⇒ Object
42 43 44 |
# File 'app/models/external_services/api_action.rb', line 42 def job_class "ExternalServices::#{self.class.to_s.demodulize}ApiJob".constantize end |
#kick_active_job ⇒ Object
46 47 48 49 50 |
# File 'app/models/external_services/api_action.rb', line 46 def kick_active_job return if api_disabled? job_class.set(queue: queue).perform_later(id) end |
#processed? ⇒ Boolean
21 22 23 |
# File 'app/models/external_services/api_action.rb', line 21 def processed? processed_at.present? end |
#set_processed! ⇒ Object
25 26 27 |
# File 'app/models/external_services/api_action.rb', line 25 def set_processed! update_attributes! processed_at: Time.now end |