Class: SpreeCmCommissioner::EnqueueCart::AddItemStatusMarker

Inherits:
BaseInteractor
  • Object
show all
Defined in:
app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb

Instance Method Summary collapse

Instance Method Details

#assign_firestore_context_attributesObject



37
38
39
40
41
42
43
44
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb', line 37

def assign_firestore_context_attributes
  document = firestore_reference.get

  context.firestore_status = document[:status]
  context.firestore_queued_at = document[:queued_at]
  context.firestore_document_reference = document.ref.path.split('/documents').last
  context.firestore_collection_reference = context.firestore_document_reference.rpartition('/').first
end

#build_data_to_setObject



28
29
30
31
32
33
34
35
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb', line 28

def build_data_to_set
  {
    status: status,
    queued_at: queued_at.presence,
    variant_id: variant_id.presence,
    quantity: quantity.presence
  }.compact
end

#callObject



8
9
10
11
12
13
14
15
16
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb', line 8

def call
  if order_number.nil? || job_id.nil? || status.nil?
    context.fail!(message: 'Missing required fields')
    return
  end
  update_cart_firestore_status

  assign_firestore_context_attributes
end

#current_dateObject



24
25
26
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb', line 24

def current_date
  Time.current.strftime('%Y-%m-%d')
end

#update_cart_firestore_statusObject



18
19
20
21
22
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb', line 18

def update_cart_firestore_status
  data_to_set = build_data_to_set

  firestore_reference.set(data_to_set, merge: true)
end