dashku 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/dashku.rb +162 -0
- metadata +77 -0
data/lib/dashku.rb
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
require 'httparty'
|
|
2
|
+
|
|
3
|
+
class Dashku
|
|
4
|
+
include HTTParty
|
|
5
|
+
|
|
6
|
+
def initialize
|
|
7
|
+
@api_url = "http://176.58.100.203"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def api_key
|
|
11
|
+
@api_key
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def api_url
|
|
15
|
+
@api_url
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def set_api_key(api_key)
|
|
19
|
+
@api_key = api_key
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def set_api_url(api_url)
|
|
23
|
+
self.class.base_uri api_url
|
|
24
|
+
@api_url = api_url
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def get_dashboards
|
|
28
|
+
request = self.class.get "/api/dashboards", :query => {:apiKey => @api_key}
|
|
29
|
+
if request.response.class == Net::HTTPOK
|
|
30
|
+
return request.parsed_response
|
|
31
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
32
|
+
raise ApiKeyInvalidError
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def get_dashboard(id)
|
|
37
|
+
request = self.class.get "/api/dashboards/#{id}", :query => {:apiKey => @api_key}
|
|
38
|
+
if request.response.class == Net::HTTPOK
|
|
39
|
+
return request.parsed_response
|
|
40
|
+
elsif request.response.class == Net::HTTPBadRequest
|
|
41
|
+
raise DashboardNotFoundError
|
|
42
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
43
|
+
raise ApiKeyInvalidError
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def create_dashboard(attrs)
|
|
48
|
+
request = self.class.post "/api/dashboards", :query => {:apiKey => @api_key}, :body => attrs
|
|
49
|
+
if request.response.class == Net::HTTPAccepted
|
|
50
|
+
return request.parsed_response
|
|
51
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
52
|
+
raise ApiKeyInvalidError
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def update_dashboard(attrs)
|
|
57
|
+
id = attrs["_id"] || attrs[:_id]
|
|
58
|
+
raise MissingIdError if id.nil?
|
|
59
|
+
request = self.class.put "/api/dashboards/#{id}", :query => {:apiKey => @api_key}, :body => attrs
|
|
60
|
+
if request.response.class == Net::HTTPCreated
|
|
61
|
+
return request.parsed_response
|
|
62
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
63
|
+
raise ApiKeyInvalidError
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def delete_dashboard(id)
|
|
68
|
+
request = self.class.delete "/api/dashboards/#{id}", :query => {:apiKey => @api_key}
|
|
69
|
+
if request.response.class == Net::HTTPCreated
|
|
70
|
+
return request.parsed_response
|
|
71
|
+
elsif request.response.class == Net::HTTPBadRequest
|
|
72
|
+
raise DashboardNotFoundError
|
|
73
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
74
|
+
raise ApiKeyInvalidError
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def create_widget(attrs)
|
|
79
|
+
dashboardId = attrs["dashboardId"] || attrs[:dashboardId]
|
|
80
|
+
raise MissingDashboardIdError if dashboardId.nil?
|
|
81
|
+
request = self.class.post "/api/dashboards/#{dashboardId}/widgets", :query => {:apiKey => @api_key}, :body => attrs
|
|
82
|
+
if request.response.class == Net::HTTPAccepted
|
|
83
|
+
return request.parsed_response
|
|
84
|
+
elsif request.response.class == Net::HTTPBadRequest
|
|
85
|
+
raise DashboardNotFoundError
|
|
86
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
87
|
+
raise ApiKeyInvalidError
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def update_widget(attrs)
|
|
92
|
+
dashboardId = attrs["dashboardId"] || attrs[:dashboardId]
|
|
93
|
+
raise MissingDashboardIdError if dashboardId.nil?
|
|
94
|
+
id = attrs["_id"] || attrs[:_id]
|
|
95
|
+
raise MissingIdError if id.nil?
|
|
96
|
+
request = self.class.put "/api/dashboards/#{dashboardId}/widgets/#{id}", :query => {:apiKey => @api_key}, :body => attrs
|
|
97
|
+
if request.response.class == Net::HTTPCreated
|
|
98
|
+
return request.parsed_response
|
|
99
|
+
elsif request.response.class == Net::HTTPBadRequest
|
|
100
|
+
raise DashboardNotFoundError
|
|
101
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
102
|
+
raise ApiKeyInvalidError
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def delete_widget(dashboardId, id)
|
|
107
|
+
request = self.class.delete "/api/dashboards/#{dashboardId}/widgets/#{id}", :query => {:apiKey => @api_key}
|
|
108
|
+
if request.response.class == Net::HTTPCreated
|
|
109
|
+
return request.parsed_response
|
|
110
|
+
elsif request.response.class == Net::HTTPBadRequest
|
|
111
|
+
if request.parsed_response["reason"].match("No dashboard found")
|
|
112
|
+
raise DashboardNotFoundError
|
|
113
|
+
else
|
|
114
|
+
raise WidgetNotFoundError
|
|
115
|
+
end
|
|
116
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
117
|
+
raise ApiKeyInvalidError
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def transmission(data)
|
|
122
|
+
request = self.class.post "/api/transmission", :query => {:apiKey => @api_key}, :body => data
|
|
123
|
+
if request.response.class == Net::HTTPOK
|
|
124
|
+
return request.parsed_response
|
|
125
|
+
elsif request.response.class == Net::HTTPBadRequest
|
|
126
|
+
raise DashboardNotFoundError
|
|
127
|
+
elsif request.response.class == Net::HTTPUnauthorized
|
|
128
|
+
raise ApiKeyInvalidError
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
class ApiKeyInvalidError < StandardError
|
|
135
|
+
def message
|
|
136
|
+
"Couldn't find a user with that API key"
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
class DashboardNotFoundError < StandardError
|
|
141
|
+
def message
|
|
142
|
+
"Dashboard not found"
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
class WidgetNotFoundError < StandardError
|
|
147
|
+
def message
|
|
148
|
+
"Widget not found"
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
class MissingIdError < StandardError
|
|
153
|
+
def message
|
|
154
|
+
"Your attributes are missing an _id field"
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
class MissingDashboardIdError < StandardError
|
|
159
|
+
def message
|
|
160
|
+
"Your attributes are missing a dashboardId field"
|
|
161
|
+
end
|
|
162
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: dashku
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.0
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Paul Jensen
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2012-06-28 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: rspec
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: 2.10.0
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ! '>='
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: 2.10.0
|
|
30
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: httparty
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
33
|
+
none: false
|
|
34
|
+
requirements:
|
|
35
|
+
- - ! '>='
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: 0.8.3
|
|
38
|
+
type: :runtime
|
|
39
|
+
prerelease: false
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: 0.8.3
|
|
46
|
+
description: A wrapper to the Dashku API
|
|
47
|
+
email: admin@dashku.com
|
|
48
|
+
executables: []
|
|
49
|
+
extensions: []
|
|
50
|
+
extra_rdoc_files: []
|
|
51
|
+
files:
|
|
52
|
+
- lib/dashku.rb
|
|
53
|
+
homepage: https://dashku.com
|
|
54
|
+
licenses: []
|
|
55
|
+
post_install_message:
|
|
56
|
+
rdoc_options: []
|
|
57
|
+
require_paths:
|
|
58
|
+
- lib
|
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
|
+
none: false
|
|
61
|
+
requirements:
|
|
62
|
+
- - ! '>='
|
|
63
|
+
- !ruby/object:Gem::Version
|
|
64
|
+
version: '0'
|
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
|
+
none: false
|
|
67
|
+
requirements:
|
|
68
|
+
- - ! '>='
|
|
69
|
+
- !ruby/object:Gem::Version
|
|
70
|
+
version: '0'
|
|
71
|
+
requirements: []
|
|
72
|
+
rubyforge_project:
|
|
73
|
+
rubygems_version: 1.8.24
|
|
74
|
+
signing_key:
|
|
75
|
+
specification_version: 3
|
|
76
|
+
summary: A wrapper to the Dashku API
|
|
77
|
+
test_files: []
|