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, Contactperson, Sale, Ticket

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

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

Gets all objects of a type from LimdeskAPI



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

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

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

Creates an object by LimdeskAPI



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

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



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

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

Instance Method Details

#delete!Boolean

Delete an object by LimdeskAPI



59
60
61
# File 'lib/limdesk_api/limdesk_object.rb', line 59

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

#object_symbolSymbol

Helper - get class name as a symbol



65
66
67
# File 'lib/limdesk_api/limdesk_object.rb', line 65

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

#refresh!LimdeskApi::Ticket, ...

Force object to refresh itself from LimdeskAPI



52
53
54
# File 'lib/limdesk_api/limdesk_object.rb', line 52

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