kvpbase 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []