Module: ExternalServices::Action

Extended by:
ActiveSupport::Concern
Included in:
ApiAction
Defined in:
app/models/concerns/external_services/action.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

QUEUE_PREFIX =
'external_services'

Instance Method Summary collapse

Instance Method Details

#execute!Object

Raises:

  • (NotImplementedError)


24
25
26
# File 'app/models/concerns/external_services/action.rb', line 24

def execute!
  raise NotImplementedError
end

#kick_active_jobObject



28
29
30
31
32
33
# File 'app/models/concerns/external_services/action.rb', line 28

def kick_active_job
  # return if processed? || api_disabled?
  return if saved_changes.size == 1 && saved_change_to_options.present?

  job_class.set(queue: prefixed_queue).perform_later(id)
end

#prefixed_queueObject



35
36
37
# File 'app/models/concerns/external_services/action.rb', line 35

def prefixed_queue
  [QUEUE_PREFIX, queue].join('__')
end

#processed?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'app/models/concerns/external_services/action.rb', line 16

def processed?
  processed_at.present?
end

#set_processed!Object



20
21
22
# File 'app/models/concerns/external_services/action.rb', line 20

def set_processed!
  update! processed_at: Time.now
end