Class: Myob::Essentials::Api::Model::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/myob/essentials/api/model/base.rb

Instance Method Summary collapse

Constructor Details

#initialize(client, model_name = nil) ⇒ Base

Returns a new instance of Base.



7
8
9
10
11
12
# File 'lib/myob/essentials/api/model/base.rb', line 7

def initialize(client, model_name=nil)
  @client          = client
  @model_name      = model_name || 'Base'
  
  @links = nil
end

Instance Method Details

#all_itemsObject



35
36
37
38
39
40
41
# File 'lib/myob/essentials/api/model/base.rb', line 35

def all_items
  results = get["items"]
  while link('next')
    results += next_page["items"] || []
  end
  results
end

#destroy(object) ⇒ Object



31
32
33
# File 'lib/myob/essentials/api/model/base.rb', line 31

def destroy(object)
  @client.connection.delete(url(object), :headers => @client.headers)
end

#find(id) ⇒ Object



22
23
24
25
# File 'lib/myob/essentials/api/model/base.rb', line 22

def find(id)
  object = { 'uid' => id }
  perform_request(url(object))
end

#getObject



18
19
20
# File 'lib/myob/essentials/api/model/base.rb', line 18

def get
  perform_request(url)
end

#model_routeObject



14
15
16
# File 'lib/myob/essentials/api/model/base.rb', line 14

def model_route
  @model_name.to_s.downcase
end

#next_pageObject



43
44
45
# File 'lib/myob/essentials/api/model/base.rb', line 43

def next_page
  perform_request(link('next')) if link('next')
end

#previous_pageObject



47
48
49
# File 'lib/myob/essentials/api/model/base.rb', line 47

def previous_page
  perform_request(link('previous')) if link('previous')
end

#save(object) ⇒ Object



27
28
29
# File 'lib/myob/essentials/api/model/base.rb', line 27

def save(object)
  new_record?(object) ? create(object) : update(object)
end