Module: Operationable::Persisters::Database

Included in:
OperationJob
Defined in:
lib/operationable/persisters/database.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create(q_options, props) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/operationable/persisters/database.rb', line 5

def self.create(q_options, props)
  date = Time.zone.now.to_date

  ::OperationCallback.create(
    q_options: q_options,
    props: props,
    attempts: 0,
    week: props[:week] || date.cweek,
    year: props[:year] || date.year,
    status: Operationable::Persisters::Base::STATUS_INIT
  )
end

Instance Method Details

#database_statusObject



26
27
28
# File 'lib/operationable/persisters/database.rb', line 26

def database_status
  ::OperationCallback.find(op_cb_id)
end

#database_status=(new_status) ⇒ Object



30
31
32
33
34
# File 'lib/operationable/persisters/database.rb', line 30

def database_status=(new_status)
  ::OperationCallback.find(op_cb_id).update(
    new_status.reduce({uuid: uuid}){ |acc, o| acc.merge(o) }
  )
end

#notify_databaseObject



18
19
20
# File 'lib/operationable/persisters/database.rb', line 18

def notify_database
  self.database_status = [{status: Operationable::Persisters::Base::STATUS_QUEUED}]
end

#op_cb_idObject



22
23
24
# File 'lib/operationable/persisters/database.rb', line 22

def op_cb_id
  arguments.first[:q_options][:op_cb_id]
end