Module: SpreePacketa::OrderDecorator

Defined in:
app/decorators/spree_packeta/order_decorator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'app/decorators/spree_packeta/order_decorator.rb', line 5

def self.prepended(base)
  base.class_eval do
    set_callback :updating_from_params, :before, :update_packeta_pickup_point

    # Store Packeta pickup point data in order metadata
    store_accessor :public_metadata, :packeta_pickup_point_id
    store_accessor :public_metadata, :packeta_pickup_point_name
    store_accessor :public_metadata, :packeta_pickup_point_address
  end
end

Instance Method Details

#packeta_address_idInteger?

Get the Packeta pickup point ID for this order

Returns:

  • (Integer, nil)

    The pickup point ID



24
25
26
# File 'app/decorators/spree_packeta/order_decorator.rb', line 24

def packeta_address_id
  packeta_pickup_point_id&.to_i
end

#set_packeta_pickup_point(point_data) ⇒ Object

Set Packeta pickup point from widget data

Parameters:

  • point_data (Hash)

    Pickup point data from Packeta widget



31
32
33
34
35
36
37
38
39
40
# File 'app/decorators/spree_packeta/order_decorator.rb', line 31

def set_packeta_pickup_point(point_data)
  return unless point_data

  self.packeta_pickup_point_id = point_data[:id]
  self.packeta_pickup_point_name = point_data[:name]

  address_parts = [point_data[:street], point_data[:city], point_data[:zip]].compact

  self.packeta_pickup_point_address = address_parts.join(', ')
end

#update_packeta_pickup_pointObject



16
17
18
19
# File 'app/decorators/spree_packeta/order_decorator.rb', line 16

def update_packeta_pickup_point
  return unless @updating_params[:order] && @updating_params[:order][:packeta_pickup_point].present?
  set_packeta_pickup_point(@updating_params[:order].delete(:packeta_pickup_point))
end