Class: Printfection::Order

Inherits:
Resource
  • Object
show all
Extended by:
Actions::Create, Actions::List, Actions::Retrieve
Includes:
Actions::Delete, Actions::Update
Defined in:
lib/printfection/order.rb

Constant Summary collapse

STATUS_CODES =
{
  "unknown"   => -2,
  "cancelled" => -1,
  "open"      => 0,
  "received"  => 1,
  "approved"  => 2,
  "processed" => 3,
  "shipped"   => 4,
  "completed" => 5
}

Instance Attribute Summary

Attributes inherited from Resource

#relation

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Actions::Retrieve

retrieve

Methods included from Actions::List

all

Methods included from Actions::Create

create

Methods included from Actions::Delete

#delete

Methods included from Actions::Update

#save

Methods inherited from Resource

#changes, #initialize, #uri

Constructor Details

This class inherits a constructor from Printfection::Resource

Class Method Details

.uriObject



27
28
29
# File 'lib/printfection/order.rb', line 27

def self.uri
  "/orders"
end

Instance Method Details

#approved?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/printfection/order.rb', line 81

def approved?
  status_code >= 2
end

#campaignObject



42
43
44
# File 'lib/printfection/order.rb', line 42

def campaign
  @campaign ||= Campaign.retrieve(campaign_id)
end

#cancelObject



50
51
52
# File 'lib/printfection/order.rb', line 50

def cancel
  delete
end

#cancelled?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/printfection/order.rb', line 73

def cancelled?
  status_code == -1
end

#completed?Boolean

Returns:

  • (Boolean)


93
94
95
# File 'lib/printfection/order.rb', line 93

def completed?
  status_code == 5
end

#line_itemsObject



31
32
33
34
35
36
37
38
39
40
# File 'lib/printfection/order.rb', line 31

def line_items
  @line_items ||= Relation.new(
    parent:   self,
    children: self[:line_items],
    klass:    LineItem,
    path:     '/lineitems',
    keys:     {:id => :order_id},
    actions:  [Actions::Retrieve, Actions::Create]
  )
end

#open?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/printfection/order.rb', line 69

def open?
  status_code == 0
end

#placeObject



46
47
48
# File 'lib/printfection/order.rb', line 46

def place
  Printfection.post Util.join_uri(uri, "/place")
end

#processed?Boolean

Returns:

  • (Boolean)


85
86
87
# File 'lib/printfection/order.rb', line 85

def processed?
  status_code >= 3
end

#received?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/printfection/order.rb', line 77

def received?
  status_code >= 1
end

#shipped?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/printfection/order.rb', line 89

def shipped?
  status_code >= 4
end

#status_codeObject



65
66
67
# File 'lib/printfection/order.rb', line 65

def status_code
  STATUS_CODES[status]
end