Class: LimdeskApi::LimdeskObject

Inherits:
RecursiveOpenStruct
  • Object
show all
Defined in:
lib/limdesk_api/limdesk_object.rb

Overview

This class represents a LimdeskAPI object. Ohter classes, like Ticket, Sale and Client, inherit from it.

Direct Known Subclasses

Activity, Client, Sale, Ticket

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.allArray<LimdeskApi::Ticket>, ...

Gets all objects of a type from LimdeskAPI



35
36
37
# File 'lib/limdesk_api/limdesk_object.rb', line 35

def self.all
  LimdeskApi.get_all(object_symbol).map { |obj| new obj }
end

.create(params) ⇒ LimdeskApi::Ticket, ...

Creates an object by LimdeskAPI



24
25
26
27
# File 'lib/limdesk_api/limdesk_object.rb', line 24

def self.create(params)
  response = LimdeskApi.create(object: object_symbol, params: params)
  new response
end

.get(id) ⇒ LimdeskApi::Ticket, ...

Gets a Object form LimdeskAPI by it’s ID



12
13
14
15
# File 'lib/limdesk_api/limdesk_object.rb', line 12

def self.get(id)
  response = LimdeskApi.get_one(object: object_symbol, id: id)
  response ? new(response) : nil
end

.object_symbolSymbol

Helper - get class name as a symbol



41
42
43
# File 'lib/limdesk_api/limdesk_object.rb', line 41

def self.object_symbol
  name.downcase.split(':').last.to_sym
end

Instance Method Details

#delete!Boolean

Delete an object by LimdeskAPI



57
58
59
# File 'lib/limdesk_api/limdesk_object.rb', line 57

def delete!
  LimdeskApi.delete(id: self['id'], object: object_symbol)
end

#object_symbolSymbol

Helper - get class name as a symbol



63
64
65
# File 'lib/limdesk_api/limdesk_object.rb', line 63

def object_symbol
  self.class.name.downcase.split(':').last.to_sym
end

#refresh!LimdeskApi::Ticket, ...

Force object to refresh itself from LimdeskAPI



50
51
52
# File 'lib/limdesk_api/limdesk_object.rb', line 50

def refresh!
  marshal_load(self.class.get(self['id']).marshal_dump)
end