Class: HelpSpot

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/help_spot.rb,
lib/help_spot/version.rb

Constant Summary collapse

VERSION =
'0.0.9'

Instance Method Summary collapse

Constructor Details

#initialize(base, user, pass) ⇒ HelpSpot

Returns a new instance of HelpSpot.



10
11
12
13
# File 'lib/help_spot.rb', line 10

def initialize(base, user, pass)
  self.class.base_uri base
  self.class.basic_auth user, pass
end

Instance Method Details

#authenticated?Boolean

Verify authentication credentials

Returns:

  • (Boolean)


17
18
19
20
21
22
# File 'lib/help_spot.rb', line 17

def authenticated?
  version = api_request(:get, 'private.version')
  return false if version.errors
  return true if version.results.version
  false
end

#categoriesObject



46
47
48
# File 'lib/help_spot.rb', line 46

def categories
  api_request(:get, 'private.request.getCategories', {:fDeleted => 0}, {:collection => 'categories', :item => 'category'})
end

#create_request(options = {}) ⇒ Object

Raises:

  • (ArgumentError)


24
25
26
27
28
# File 'lib/help_spot.rb', line 24

def create_request(options = {})
  raise ArgumentError unless options[:tNote] && options[:xCategory]
  raise ArgumentError unless options[:sFirstName] || options[:sLastName] || options[:sUserId] || options[:sEmail] || options[:sPhone]
  api_request(:post, 'private.request.create', options, :item => 'request').xRequest.to_i
end

#custom_fields(options = {}) ⇒ Object



54
55
56
# File 'lib/help_spot.rb', line 54

def custom_fields(options = {})
  api_request(:get, 'private.request.getCustomFields', options, {:collection => 'customfields', :item => 'field'})
end

#filter(id, options = {}) ⇒ Object



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

def filter(id, options = {})
  api_request(:get, 'private.filter.get', options.merge(:xFilter => id), {:collection => 'filter', :item => 'request'})
end

#request(id, options = {}) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/help_spot.rb', line 34

def request(id, options = {})
  response = api_request(:get, 'private.request.get', options.merge(:xRequest => id), :item => 'request')
  #munge even further the request history
  response.request_history = response.request_history['item'] rescue []
  response.request_history = [response.request_history] unless response.request_history.is_a?(Array)
  response
end

#search_requests(options = {}) ⇒ Object



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

def search_requests(options = {})
  api_request(:get, 'private.request.search', options, {:collection => 'requests', :item => 'request'})
end

#search_time_events(options = {}) ⇒ Object



62
63
64
# File 'lib/help_spot.rb', line 62

def search_time_events(options = {})
  api_request(:get, 'private.timetracker.search', options, {:collection => 'time_events', :item => 'event'})
end

#status_typesObject



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

def status_types
  api_request(:get, 'private.request.getStatusTypes', {:fActiveOnly => 1}, {:collection => 'results', :item => 'status'})
end

#time_events(id, options = {}) ⇒ Object



66
67
68
# File 'lib/help_spot.rb', line 66

def time_events(id, options = {})
  api_request(:get, 'private.request.getTimeEvents', options.merge(:xRequest => id), {:collection => 'time_events', :item => 'event'})
end

#update_request(id, options = {}) ⇒ Object



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

def update_request(id, options = {})
  api_request(:post, 'private.request.update', options.merge(:xRequest => id), :item => 'request').xRequest.to_i
end