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::Client>, ...

Gets all objects of a type from LimdeskAPI

Returns:



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

Parameters:

  • params (Hash)

    new object data (depending on object’s type)

Returns:



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

Parameters:

  • id (Integer)

    requested object’s id

Returns:



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

Returns:

  • (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

Returns:

  • (Boolean)


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

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

#object_symbolSymbol

Helper - get class name as a symbol

Returns:

  • (Symbol)


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

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

#refresh!LimdeskApi::Ticket, ...

Force object to refresh itself from LimdeskAPI



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

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