Class: Dashku

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/dashku.rb

Instance Method Summary collapse

Constructor Details

#initializeDashku

Returns a new instance of Dashku.



6
7
8
# File 'lib/dashku.rb', line 6

def initialize
  @api_url = "http://176.58.100.203"
end

Instance Method Details

#api_keyObject



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

def api_key
  @api_key
end

#api_urlObject



14
15
16
# File 'lib/dashku.rb', line 14

def api_url
  @api_url
end

#create_dashboard(attrs) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/dashku.rb', line 47

def create_dashboard(attrs)
  request = self.class.post "/api/dashboards", :query => {:apiKey => @api_key}, :body => attrs
  if request.response.class == Net::HTTPAccepted
    return request.parsed_response
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end
end

#create_widget(attrs) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/dashku.rb', line 78

def create_widget(attrs)
  dashboardId = attrs["dashboardId"] || attrs[:dashboardId]
  raise MissingDashboardIdError if dashboardId.nil?
  request = self.class.post "/api/dashboards/#{dashboardId}/widgets", :query => {:apiKey => @api_key}, :body => attrs
  if request.response.class == Net::HTTPAccepted
    return request.parsed_response
  elsif request.response.class == Net::HTTPBadRequest
    raise DashboardNotFoundError
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end    
end

#delete_dashboard(id) ⇒ Object



67
68
69
70
71
72
73
74
75
76
# File 'lib/dashku.rb', line 67

def delete_dashboard(id)
  request = self.class.delete "/api/dashboards/#{id}", :query => {:apiKey => @api_key}    
  if request.response.class == Net::HTTPCreated
    return request.parsed_response
  elsif request.response.class == Net::HTTPBadRequest
    raise DashboardNotFoundError
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end
end

#delete_widget(dashboardId, id) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/dashku.rb', line 106

def delete_widget(dashboardId, id)
  request = self.class.delete "/api/dashboards/#{dashboardId}/widgets/#{id}", :query => {:apiKey => @api_key}
  if request.response.class == Net::HTTPCreated
    return request.parsed_response
  elsif request.response.class == Net::HTTPBadRequest
    if request.parsed_response["reason"].match("No dashboard found")
      raise DashboardNotFoundError
    else
      raise WidgetNotFoundError
    end
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end    
end

#get_dashboard(id) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/dashku.rb', line 36

def get_dashboard(id)
  request = self.class.get "/api/dashboards/#{id}", :query => {:apiKey => @api_key}
  if request.response.class == Net::HTTPOK
    return request.parsed_response
  elsif request.response.class == Net::HTTPBadRequest
    raise DashboardNotFoundError
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end
end

#get_dashboardsObject



27
28
29
30
31
32
33
34
# File 'lib/dashku.rb', line 27

def get_dashboards
  request = self.class.get "/api/dashboards", :query => {:apiKey => @api_key}
  if request.response.class == Net::HTTPOK
    return request.parsed_response
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end
end

#set_api_key(api_key) ⇒ Object



18
19
20
# File 'lib/dashku.rb', line 18

def set_api_key(api_key)
  @api_key = api_key
end

#set_api_url(api_url) ⇒ Object



22
23
24
25
# File 'lib/dashku.rb', line 22

def set_api_url(api_url)
  self.class.base_uri api_url
  @api_url = api_url
end

#transmission(data) ⇒ Object



121
122
123
124
125
126
127
128
129
130
# File 'lib/dashku.rb', line 121

def transmission(data)
  request = self.class.post "/api/transmission", :query => {:apiKey => @api_key}, :body => data   
  if request.response.class == Net::HTTPOK
    return request.parsed_response
  elsif request.response.class == Net::HTTPBadRequest
    raise DashboardNotFoundError
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end
end

#update_dashboard(attrs) ⇒ Object

Raises:



56
57
58
59
60
61
62
63
64
65
# File 'lib/dashku.rb', line 56

def update_dashboard(attrs)
  id = attrs["_id"] || attrs[:_id]
  raise MissingIdError if id.nil?
  request = self.class.put "/api/dashboards/#{id}", :query => {:apiKey => @api_key}, :body => attrs    
  if request.response.class == Net::HTTPCreated
    return request.parsed_response
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end
end

#update_widget(attrs) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/dashku.rb', line 91

def update_widget(attrs)
  dashboardId = attrs["dashboardId"] || attrs[:dashboardId]
  raise MissingDashboardIdError if dashboardId.nil?
  id = attrs["_id"] || attrs[:_id]
  raise MissingIdError if id.nil?
  request = self.class.put "/api/dashboards/#{dashboardId}/widgets/#{id}", :query => {:apiKey => @api_key}, :body => attrs
  if request.response.class == Net::HTTPCreated
    return request.parsed_response
  elsif request.response.class == Net::HTTPBadRequest
    raise DashboardNotFoundError
  elsif request.response.class == Net::HTTPUnauthorized
    raise ApiKeyInvalidError
  end
end