kvpbase 1.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/kvpbase.rb +329 -0
  3. metadata +44 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4e912bb44bf33bd86bec797547494d8a93891ef9
4
+ data.tar.gz: c4a21690da9f00628f69bd04323c565d58b8d92a
5
+ SHA512:
6
+ metadata.gz: 4567533b23d53959ea9501ab62da8ee6c5621fa6e504b1dfa50eb9ee668d0ce6d8eca1242e50ae9261d5120549f8209e3f0ab488222e643a5ae1e4902743c0b0
7
+ data.tar.gz: ecc81b58485c358daae45a8d99242e9ca41e288b003eb596e111e796670f1af0723122004f008efad3b820f4923552efb77bedd5672a9fa4f46072c95a127d1b
@@ -0,0 +1,329 @@
1
+ #
2
+ #
3
+ # Ruby SDK for kvpbase
4
+ # kvpbase.rb
5
+ #
6
+ # www.kvpbase.com
7
+ #
8
+ #
9
+
10
+ require 'net/http'
11
+ require 'net/https'
12
+ require 'uri'
13
+ require 'json'
14
+
15
+ class Kvpbase
16
+ def initialize(endpoint_url, user_guid, api_key, enable_ssl, debug)
17
+ @endpoint_url = endpoint_url
18
+ @user_guid = user_guid
19
+ @api_key = api_key
20
+ @enable_ssl = enable_ssl
21
+ @debug = debug
22
+ end
23
+
24
+ # internal log method adds conditional in front of puts
25
+ def log(msg)
26
+ if @debug
27
+ puts msg
28
+ end
29
+ end
30
+
31
+ def loopback
32
+ url = @endpoint_url + "loopback"
33
+ uri = URI.parse(url)
34
+ response = Net::HTTP.get_response(uri)
35
+ self.log "loopback response " + response.code + ": " + response.body
36
+ return response.body
37
+ end
38
+
39
+ def create_obj(filename, content_type, data)
40
+ url = @endpoint_url + @user_guid + "/" + filename
41
+ uri = URI.parse(url)
42
+
43
+ headers = { "x-api-key" => @api_key, "content-type" => content_type }
44
+ http = Net::HTTP.new(uri.host, uri.port)
45
+
46
+ if @enable_ssl
47
+ http.use_ssl = true
48
+ end
49
+
50
+ request = Net::HTTP::Put.new(uri.request_uri)
51
+ request.body = data
52
+ request.initialize_http_header(headers)
53
+ response = http.request(request)
54
+ self.log "create_obj response " + response.code + ": " + response.body
55
+ return response
56
+ end
57
+
58
+ def create_obj_without_name(container_path, content_type, data)
59
+ url = @endpoint_url + @user_guid + "/" + container_path
60
+ uri = URI.parse(url)
61
+
62
+ headers = { "x-api-key" => @api_key, "content-type" => content_type }
63
+ http = Net::HTTP.new(uri.host, uri.port)
64
+
65
+ if @enable_ssl
66
+ http.use_ssl = true
67
+ end
68
+
69
+ request = Net::HTTP::Post.new(uri.request_uri)
70
+ request.body = data
71
+ request.initialize_http_header(headers)
72
+ response = http.request(request)
73
+ self.log "create_obj_without_name response " + response.code + ": " + response.body
74
+ return response
75
+ end
76
+
77
+ def obj_exists(filename)
78
+ url = @endpoint_url + @user_guid + "/" + filename
79
+ uri = URI.parse(url)
80
+
81
+ headers = { "x-api-key" => @api_key }
82
+ http = Net::HTTP.new(uri.host, uri.port)
83
+
84
+ if @enable_ssl
85
+ http.use_ssl = true
86
+ end
87
+
88
+ request = Net::HTTP::Head.new(uri.request_uri)
89
+ request.initialize_http_header(headers)
90
+ response = http.request(request)
91
+ self.log "obj_exists response " + response.code
92
+ return response
93
+ end
94
+
95
+ def create_container(container_path)
96
+ url = @endpoint_url + @user_guid + "/" + container_path + "?container=true"
97
+ uri = URI.parse(url)
98
+
99
+ headers = { "x-api-key" => @api_key }
100
+ http = Net::HTTP.new(uri.host, uri.port)
101
+
102
+ if @enable_ssl
103
+ http.use_ssl = true
104
+ end
105
+
106
+ request = Net::HTTP::Put.new(uri.request_uri)
107
+ request.initialize_http_header(headers)
108
+ response = http.request(request)
109
+ self.log "create_container response " + response.code + ": " + response.body
110
+ return response
111
+ end
112
+
113
+ def container_exists(container_path)
114
+ url = @endpoint_url + @user_guid + "/" + container_path + "?container=true"
115
+ uri = URI.parse(url)
116
+
117
+ headers = { "x-api-key" => @api_key }
118
+ http = Net::HTTP.new(uri.host, uri.port)
119
+
120
+ if @enable_ssl
121
+ http.use_ssl = true
122
+ end
123
+
124
+ request = Net::HTTP::Head.new(uri.request_uri)
125
+ request.initialize_http_header(headers)
126
+ response = http.request(request)
127
+ self.log "container_exists response " + response.code
128
+ return response
129
+ end
130
+
131
+ def get_obj(filename)
132
+ url = @endpoint_url + @user_guid + "/" + filename
133
+ uri = URI.parse(url)
134
+
135
+ headers = { "x-api-key" => @api_key }
136
+ http = Net::HTTP.new(uri.host, uri.port)
137
+
138
+ if @enable_ssl
139
+ http.use_ssl = true
140
+ end
141
+
142
+ request = Net::HTTP::Get.new(uri.request_uri)
143
+ request.initialize_http_header(headers)
144
+ response = http.request(request)
145
+ self.log "get_obj response " + response.code + ": " + response.body
146
+ # JSON.parse(response.body)
147
+ return response
148
+ end
149
+
150
+ def get_obj_metadata(filename)
151
+ url = @endpoint_url + @user_guid + "/" + filename + "?metadata=true"
152
+ uri = URI.parse(url)
153
+
154
+ headers = { "x-api-key" => @api_key }
155
+ http = Net::HTTP.new(uri.host, uri.port)
156
+
157
+ if @enable_ssl
158
+ http.use_ssl = true
159
+ end
160
+
161
+ request = Net::HTTP::Get.new(uri.request_uri)
162
+ request.initialize_http_header(headers)
163
+ response = http.request(request)
164
+ self.log "get_obj_metadata response " + response.code + ": " + response.body
165
+ # JSON.parse(response.body)
166
+ return response
167
+ end
168
+
169
+ def get_container(container_path)
170
+ url = @endpoint_url + @user_guid + "/" + container_path + "?container=true"
171
+ uri = URI.parse(url)
172
+
173
+ headers = { "x-api-key" => @api_key }
174
+ http = Net::HTTP.new(uri.host, uri.port)
175
+
176
+ if @enable_ssl
177
+ http.use_ssl = true
178
+ end
179
+
180
+ request = Net::HTTP::Get.new(uri.request_uri)
181
+ request.initialize_http_header(headers)
182
+ response = http.request(request)
183
+ self.log "get_container response " + response.code + ": " + response.body
184
+
185
+ # JSON.parse(response.body)
186
+ return response
187
+ end
188
+
189
+ def del_obj(filename)
190
+ url = @endpoint_url + @user_guid + "/" + filename
191
+ uri = URI.parse(url)
192
+
193
+ headers = { "x-api-key" => @api_key }
194
+ http = Net::HTTP.new(uri.host, uri.port)
195
+
196
+ if @enable_ssl
197
+ http.use_ssl = true
198
+ end
199
+
200
+ request = Net::HTTP::Delete.new(uri.request_uri)
201
+ request.initialize_http_header(headers)
202
+ response = http.request(request)
203
+ self.log "del_obj response " + response.code + ": " + response.body
204
+
205
+ # JSON.parse(response.body)
206
+ return response
207
+ end
208
+
209
+ def del_container(container_path, recursive)
210
+ url = @endpoint_url + @user_guid + "/" + container_path + "?container=true"
211
+ if recursive
212
+ url = url + "&recursive=true"
213
+ end
214
+ uri = URI.parse(url)
215
+
216
+ headers = { "x-api-key" => @api_key }
217
+ http = Net::HTTP.new(uri.host, uri.port)
218
+
219
+ if @enable_ssl
220
+ http.use_ssl = true
221
+ end
222
+
223
+ request = Net::HTTP::Delete.new(uri.request_uri)
224
+ request.initialize_http_header(headers)
225
+ response = http.request(request)
226
+ self.log "del_container response " + response.code + ": " + response.body
227
+
228
+ # JSON.parse(response.body)
229
+ return response
230
+ end
231
+
232
+ def move_obj(from_container, move_from, to_container, move_to)
233
+ url = @endpoint_url + @user_guid + "/move"
234
+ uri = URI.parse(url)
235
+
236
+ headers = { "x-api-key" => @api_key }
237
+ http = Net::HTTP.new(uri.host, uri.port)
238
+
239
+ if @enable_ssl
240
+ http.use_ssl = true
241
+ end
242
+
243
+ request = Net::HTTP::Post.new(uri.request_uri)
244
+ request.body = { from_container: from_container,
245
+ move_from: move_from,
246
+ to_container: to_container,
247
+ move_to: move_to }.to_json
248
+
249
+ request.initialize_http_header(headers)
250
+ response = http.request(request)
251
+ self.log "move_obj response " + response.code + ": " + response.body
252
+
253
+ # JSON.parse(response.body)
254
+ return response
255
+ end
256
+
257
+ def move_container(from_container, move_from, to_container, move_to)
258
+ url = @endpoint_url + @user_guid + "/move?container=true"
259
+ uri = URI.parse(url)
260
+
261
+ headers = { "x-api-key" => @api_key }
262
+ http = Net::HTTP.new(uri.host, uri.port)
263
+
264
+ if @enable_ssl
265
+ http.use_ssl = true
266
+ end
267
+
268
+ request = Net::HTTP::Post.new(uri.request_uri)
269
+ request.body = { from_container: from_container,
270
+ move_from: move_from,
271
+ to_container: to_container,
272
+ move_to: move_to }.to_json
273
+
274
+ request.initialize_http_header(headers)
275
+ response = http.request(request)
276
+ self.log "move_container response " + response.code + ": " + response.body
277
+
278
+ # JSON.parse(response.body)
279
+ return response
280
+ end
281
+
282
+ def rename_obj(container_path, rename_from, rename_to)
283
+ url = @endpoint_url + @user_guid + "/rename"
284
+ uri = URI.parse(url)
285
+
286
+ headers = { "x-api-key" => @api_key }
287
+ http = Net::HTTP.new(uri.host, uri.port)
288
+
289
+ if @enable_ssl
290
+ http.use_ssl = true
291
+ end
292
+
293
+ request = Net::HTTP::Post.new(uri.request_uri)
294
+ request.body = { container_path: container_path,
295
+ rename_from: rename_from,
296
+ rename_to: rename_to }.to_json
297
+
298
+ request.initialize_http_header(headers)
299
+ response = http.request(request)
300
+ self.log "rename_obj response " + response.code + ": " + response.body
301
+
302
+ # JSON.parse(response.body)
303
+ return response
304
+ end
305
+
306
+ def rename_container(container_path, rename_from, rename_to)
307
+ url = @endpoint_url + @user_guid + "/rename?container=true"
308
+ uri = URI.parse(url)
309
+
310
+ headers = { "x-api-key" => @api_key }
311
+ http = Net::HTTP.new(uri.host, uri.port)
312
+
313
+ if @enable_ssl
314
+ http.use_ssl = true
315
+ end
316
+
317
+ request = Net::HTTP::Post.new(uri.request_uri)
318
+ request.body = { container_path: container_path,
319
+ rename_from: rename_from,
320
+ rename_to: rename_to }.to_json
321
+
322
+ request.initialize_http_header(headers)
323
+ response = http.request(request)
324
+ self.log "rename_container response " + response.code + ": " + response.body
325
+
326
+ # JSON.parse(response.body)
327
+ return response
328
+ end
329
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kvpbase
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Joel Christner
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-18 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Ruby SDK for kvpbase, a data storage platform for developers
14
+ email: support@maraudersoftware.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/kvpbase.rb
20
+ homepage: http://www.kvpbase.com
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.0.14
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Ruby SDK for kvpbase
44
+ test_files: []