Class: WhiplashApi::Item

Inherits:
Base
  • Object
show all
Defined in:
lib/whiplash_api/item.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

connection, headers, reset_headers!, testing!

Class Method Details

.count(args = {}) ⇒ Object



4
5
6
# File 'lib/whiplash_api/item.rb', line 4

def count(args={})
  self.get(:count, args)
end

.delete(*args) ⇒ Object



40
41
42
43
44
# File 'lib/whiplash_api/item.rb', line 40

def delete(*args)
  super
rescue WhiplashApi::RecordNotFound
  raise RecordNotFound, "No Item was found with given ID."
end

.find_or_create(id, args = {}) ⇒ Object



20
21
22
23
24
# File 'lib/whiplash_api/item.rb', line 20

def find_or_create(id, args={})
  self.find(id)
rescue WhiplashApi::RecordNotFound
  create(args)
end

.find_or_create_by_originator_id(id, args = {}) ⇒ Object



30
31
32
# File 'lib/whiplash_api/item.rb', line 30

def find_or_create_by_originator_id(id, args={})
  originator(id) || create(args.merge(originator_id: id))
end

.find_or_create_by_sku(sku, args = {}) ⇒ Object



26
27
28
# File 'lib/whiplash_api/item.rb', line 26

def find_or_create_by_sku(sku, args={})
  first_by_sku(sku) || create(args.merge(sku: sku))
end

.first_by_sku(sku, args = {}) ⇒ Object

additional useful methods:



47
48
49
# File 'lib/whiplash_api/item.rb', line 47

def first_by_sku(sku, args={})
  self.sku(sku, args).first
end

.group(id, args = {}) ⇒ Object



12
13
14
# File 'lib/whiplash_api/item.rb', line 12

def group(id, args={})
  sanitize_as_resource self.get("group/#{id}", args)
end

.originator(id, args = {}) ⇒ Object



16
17
18
# File 'lib/whiplash_api/item.rb', line 16

def originator(id, args={})
  sanitize_as_resource self.get("originator/#{id}", args)
end

.sku(sku, args = {}) ⇒ Object



8
9
10
# File 'lib/whiplash_api/item.rb', line 8

def sku(sku, args={})
  sanitize_as_resource self.get(:sku, { sku: sku }.merge(args))
end

.update(args = {}) ⇒ Object

Raises:



34
35
36
37
38
# File 'lib/whiplash_api/item.rb', line 34

def update(args={})
  item = self.originator(args[:originator_id])
  raise RecordNotFound, "No item was found with given Originator ID." unless item
  item.update_attributes(args) ? item : nil
end

Instance Method Details

#destroy(args = {}) ⇒ Object

instance methods



53
54
55
# File 'lib/whiplash_api/item.rb', line 53

def destroy(args={})
  self.class.delete(self.id, args)
end