Class: Xpost::Orders

Inherits:
Object
  • Object
show all
Defined in:
lib/xpost/orders.rb

Class Method Summary collapse

Class Method Details

.all(auth_token) ⇒ Object

cant actually get all orders since its paginated



14
15
16
17
18
# File 'lib/xpost/orders.rb', line 14

def self.all(auth_token)
  all_orders_url = "orders"

  get_url(all_orders_url, headers: auth_header(auth_token))
end

.cancel(auth_token, tracking_number) ⇒ Object



50
51
52
53
54
55
# File 'lib/xpost/orders.rb', line 50

def self.cancel(auth_token, tracking_number)
  cancel_order_url = "orders/#{tracking_number}/cancel"

  res = put_url(cancel_order_url, headers: auth_header(auth_token))
  res = res[:message] == "Not Found" ? "Not Found" : res
end

.confirm(auth_token, tracking_number, payment_reference_id) ⇒ Object



43
44
45
46
47
48
# File 'lib/xpost/orders.rb', line 43

def self.confirm(auth_token, tracking_number, payment_reference_id)
  confirm_order_url = "orders/#{tracking_number}/confirm"

  res = put_url(confirm_order_url, data: payment_reference_id, headers: auth_header(auth_token))
  res = res[:message] == "Not Found" ? "Not Found" : res
end

.create(auth_token, options = {}) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/xpost/orders.rb', line 34

def self.create(auth_token, options = {})
  raise "Missing order data" if options[:order_data].empty?

  create_order_url      = "orders"
  order_data            = options[:order_data]
  
  res = post_url(create_order_url, data: order_data, headers: auth_header(auth_token))
end

.find(auth_token, tracking_number) ⇒ Object



20
21
22
23
24
25
# File 'lib/xpost/orders.rb', line 20

def self.find(auth_token, tracking_number)
  find_order_url  = "orders/#{tracking_number}"

  res = get_url(find_order_url, headers: auth_header(auth_token))
  res = res[:message] == "Not Found" ? "Not Found" : res
end

.for_pickup(auth_token, tracking_number, pickup_address) ⇒ Object



57
58
59
60
61
62
63
64
65
# File 'lib/xpost/orders.rb', line 57

def self.for_pickup(auth_token, tracking_number, pickup_address)
  pickup_address = Xpost::Models::Address.new(pickup_address)
  for_pickup_url = "orders/#{tracking_number}/for-pickup"

  raise "Invalid address" unless pickup_address.valid?

  res = put_url(for_pickup_url, data: pickup_address, headers: auth_header(auth_token))
  res = res[:message] == "Not Found" ? "Not Found" : res
end

.track(auth_token, tracking_number) ⇒ Object



27
28
29
30
31
32
# File 'lib/xpost/orders.rb', line 27

def self.track(auth_token, tracking_number)
  track_order_url = "orders/#{tracking_number}"

  res = get_url(track_order_url, headers: auth_header(auth_token))
  res = res[:message] == "Not Found" ? "Not Found" : { timeline: res[:tat], events: res[:events] }
end