baruwa 0.0.1

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/baruwa.rb ADDED
@@ -0,0 +1,401 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # vim: ai ts=4 sts=4 et sw=4
3
+ # baruwa: Ruby bindings for the Baruwa REST API
4
+ # Copyright (C) 2015 Andrew Colin Kissa <andrew@topdog.za.net>
5
+ #
6
+ # This Source Code Form is subject to the terms of the Mozilla Public
7
+ # License, v. 2.0. If a copy of the MPL was not distributed with this file,
8
+ # You can obtain one at http://mozilla.org/MPL/2.0/.
9
+ require "baruwa/version"
10
+ require "json"
11
+ require "net/http"
12
+
13
+ class BaruwaAPIError < StandardError; end
14
+
15
+ class BaruwaAPI
16
+ ENDPOINTS = {
17
+ :users => {
18
+ :list => {:name => '/users', :method => :get},
19
+ :new => {:name => '/users', :method => :post},
20
+ :get => {:name => '/users/%s', :method => :get},
21
+ :update => {:name => '/users', :method => :put},
22
+ :delete => {:name => '/users/%s', :method => :delete},
23
+ :password => {:name => '/users/chpw/%s', :method => :post}
24
+ },
25
+ :aliases => {
26
+ :get => {:name => '/aliasaddresses/%s', :method => :get},
27
+ :new => {:name => '/aliasaddresses/%s', :method => :post},
28
+ :update => {:name => '/aliasaddresses/%s', :method => :put},
29
+ :delete => {:name => '/aliasaddresses/%s', :method => :delete}
30
+ },
31
+ :domains => {
32
+ :list => {:name => '/domains', :method => :get},
33
+ :new => {:name => '/domains', :method => :post},
34
+ :get => {:name => '/domains/%s', :method => :get},
35
+ :update => {:name => '/domains/%s', :method => :put},
36
+ :delete => {:name => '/domains/%s', :method => :delete}
37
+ },
38
+ :domainaliases => {
39
+ :list => {:name => '/domainaliases/%s', :method => :get},
40
+ :new => {:name => '/domainaliases/%s', :method => :post},
41
+ :get => {:name => '/domainaliases/%s/%s', :method => :get},
42
+ :update => {:name => '/domainaliases/%s/%s', :method => :put},
43
+ :delete => {:name => '/domainaliases/%s/%s', :method => :delete}
44
+ },
45
+ :deliveryservers => {
46
+ :list => {:name => '/deliveryservers/%s', :method => :get},
47
+ :new => {:name => '/deliveryservers/%s', :method => :post},
48
+ :get => {:name => '/deliveryservers/%s/%s', :method => :get},
49
+ :update => {:name => '/deliveryservers/%s/%s', :method => :put},
50
+ :delete => {:name => '/deliveryservers/%s/%s', :method => :delete}
51
+ },
52
+ :authservers => {
53
+ :list => {:name => '/authservers/%s', :method => :get},
54
+ :new => {:name => '/authservers/%s', :method => :post},
55
+ :get => {:name => '/authservers/%s/%s', :method => :get},
56
+ :update => {:name => '/authservers/%s/%s', :method => :put},
57
+ :delete => {:name => '/authservers/%s/%s', :method => :delete}
58
+ },
59
+ :ldapsettings => {
60
+ :new => {:name => '/ldapsettings/%s/%s', :method => :post},
61
+ :get => {:name => '/ldapsettings/%s/%s/%s', :method => :get},
62
+ :update => {:name => '/ldapsettings/%s/%s/%s', :method => :put},
63
+ :delete => {:name => '/ldapsettings/%s/%s/%s', :method => :delete}
64
+ },
65
+ :radiussettings => {
66
+ :new => {:name => '/radiussettings/%s/%s', :method => :post},
67
+ :get => {:name => '/radiussettings/%s/%s/%s', :method => :get},
68
+ :update => {:name => '/radiussettings/%s/%s/%s', :method => :put},
69
+ :delete => {:name => '/radiussettings/%s/%s/%s', :method => :delete}
70
+ },
71
+ :organizations => {
72
+ :list => {:name => '/organizations', :method => :get},
73
+ :new => {:name => '/organizations', :method => :post},
74
+ :get => {:name => '/organizations/%s', :method => :get},
75
+ :update => {:name => '/organizations/%s', :method => :put},
76
+ :delete => {:name => '/organizations/%s', :method => :delete}
77
+ },
78
+ :relays => {
79
+ :new => {:name => '/relays/%s', :method => :post},
80
+ :get => {:name => '/relays/%s', :method => :get},
81
+ :update => {:name => '/relays/%s', :method => :put},
82
+ :delete => {:name => '/relays/%s', :method => :delete}
83
+ },
84
+ :status => {:name => '/status', :method => :get}
85
+ }
86
+ def initialize (url, token, ssl_verify=false)
87
+ @baruwa_url = "#{url}/api/v1"
88
+ @baruwa_token = token
89
+ end
90
+
91
+ def get_users
92
+ # get users
93
+ call_api(ENDPOINTS[:users][:list])
94
+ end
95
+
96
+ def get_user(userid)
97
+ # get a user
98
+ call_api(ENDPOINTS[:users][:get], [userid])
99
+ end
100
+
101
+ def create_user(data)
102
+ # create a user
103
+ call_api(ENDPOINTS[:users][:new], [], data)
104
+ end
105
+
106
+ def update_user(data)
107
+ # update a user
108
+ call_api(ENDPOINTS[:users][:update], [], data)
109
+ end
110
+
111
+ def delete_user(userid)
112
+ # delete a user
113
+ call_api(ENDPOINTS[:users][:delete], [userid])
114
+ end
115
+
116
+ def set_user_passwd(userid, data)
117
+ # set a user password
118
+ call_api(ENDPOINTS[:users][:password], [userid], data)
119
+ end
120
+
121
+ def get_aliases(addressid)
122
+ # get aliases
123
+ call_api(ENDPOINTS[:aliases][:get], [addressid])
124
+ end
125
+
126
+ def create_alias(userid, data)
127
+ # create an alias address
128
+ call_api(ENDPOINTS[:aliases][:new], [userid], data)
129
+ end
130
+
131
+ def update_alias(addressid, data)
132
+ # update an alias address
133
+ call_api(ENDPOINTS[:aliases][:update], [addressid], data)
134
+ end
135
+
136
+ def delete_alias(addressid, data)
137
+ # delete an alias address
138
+ call_api(ENDPOINTS[:aliases][:delete], [addressid], data)
139
+ end
140
+
141
+ def get_domains
142
+ # get domains
143
+ call_api(ENDPOINTS[:domains][:list])
144
+ end
145
+
146
+ def get_domain(domainid)
147
+ # get a domain
148
+ call_api(ENDPOINTS[:domains][:get], [domainid])
149
+ end
150
+
151
+ def create_domain(data)
152
+ # create a domain
153
+ call_api(ENDPOINTS[:domains][:new], [], data)
154
+ end
155
+
156
+ def update_domain(domainid, data)
157
+ # update a domain
158
+ call_api(ENDPOINTS[:domains][:update], [domainid], data)
159
+ end
160
+
161
+ def delete_domain(domainid)
162
+ # delete a domain
163
+ call_api(ENDPOINTS[:domains][:delete], [domainid])
164
+ end
165
+
166
+ def get_domainaliases(domainid)
167
+ # get domain aliases
168
+ call_api(ENDPOINTS[:domainaliases][:list], [domainid])
169
+ end
170
+
171
+ def get_domainalias(domainid, aliasid)
172
+ # get domain alias
173
+ call_api(ENDPOINTS[:domainaliases][:get], [domainid, aliasid])
174
+ end
175
+
176
+ def create_domainalias(domainid, data)
177
+ # create a domain alias
178
+ call_api(ENDPOINTS[:domainaliases][:new], [domainid], data)
179
+ end
180
+
181
+ def update_domainalias(domainid, aliasid, data)
182
+ # update a domain alias
183
+ call_api(ENDPOINTS[:domainaliases][:update], [domainid, aliasid], data)
184
+ end
185
+
186
+ def delete_domainalias(domainid, aliasid, data)
187
+ # delete a domain alias
188
+ call_api(ENDPOINTS[:domainaliases][:delete], [domainid, aliasid], data)
189
+ end
190
+
191
+ def get_deliveryservers(domainid)
192
+ # get delivery servers
193
+ call_api(ENDPOINTS[:deliveryservers][:list], [domainid])
194
+ end
195
+
196
+ def get_deliveryserver(domainid, serverid)
197
+ # get a delivery server
198
+ call_api(ENDPOINTS[:deliveryservers][:get], [domainid, serverid])
199
+ end
200
+
201
+ def create_deliveryserver(domainid, data)
202
+ # create a delivery server
203
+ call_api(ENDPOINTS[:deliveryservers][:new], [domainid], data)
204
+ end
205
+
206
+ def update_deliveryserver(domainid, serverid, data)
207
+ # update a delivery server
208
+ call_api(ENDPOINTS[:deliveryservers][:update], [domainid, serverid], data)
209
+ end
210
+
211
+ def delete_deliveryserver(domainid, serverid, data)
212
+ # delete delivery servers
213
+ call_api(ENDPOINTS[:deliveryservers][:delete], [domainid, serverid], data)
214
+ end
215
+
216
+ def get_authservers(domainid)
217
+ # get auth servers
218
+ call_api(ENDPOINTS[:authservers][:list], [domainid])
219
+ end
220
+
221
+ def get_authserver(domainid, serverid)
222
+ # get auth server
223
+ call_api(ENDPOINTS[:authservers][:get], [domainid, serverid])
224
+ end
225
+
226
+ def create_authserver(domainid, data)
227
+ # create auth server
228
+ call_api(ENDPOINTS[:authservers][:new], [domainid], data)
229
+ end
230
+
231
+ def update_authserver(domainid, serverid, data)
232
+ # update an auth server
233
+ call_api(ENDPOINTS[:authservers][:update], [domainid, serverid], data)
234
+ end
235
+
236
+ def delete_authserver(domainid, serverid, data)
237
+ # delete an auth server
238
+ call_api(ENDPOINTS[:authservers][:delete], [domainid, serverid], data)
239
+ end
240
+
241
+ def get_ldapsettings(domainid, serverid, settingsid)
242
+ # get ldap settings
243
+ call_api(ENDPOINTS[:ldapsettings][:get], [domainid, serverid, settingsid])
244
+ end
245
+
246
+ def create_ldapsettings(domainid, serverid, data)
247
+ # create ldap settings
248
+ call_api(ENDPOINTS[:ldapsettings][:new], [domainid, serverid], data)
249
+ end
250
+
251
+ def update_ldapsettings(domainid, serverid, settingsid, data)
252
+ # update ldap settings
253
+ call_api(ENDPOINTS[:ldapsettings][:update], [domainid, serverid, settingsid], data)
254
+ end
255
+
256
+ def delete_ldapsettings(domainid, serverid, settingsid, data)
257
+ # delete ldap settings
258
+ call_api(ENDPOINTS[:ldapsettings][:delete], [domainid, serverid, settingsid], data)
259
+ end
260
+
261
+ def get_radiussettings(domainid, serverid, settingsid)
262
+ # get radius settings
263
+ call_api(ENDPOINTS[:radiussettings][:get], [domainid, serverid, settingsid])
264
+ end
265
+
266
+ def create_radiussettings(domainid, serverid, data)
267
+ # create radius settings
268
+ call_api(ENDPOINTS[:radiussettings][:new], [domainid, serverid], data)
269
+ end
270
+
271
+ def update_radiussettings(domainid, serverid, settingsid, data)
272
+ # update radius settings
273
+ call_api(ENDPOINTS[:radiussettings][:update], [domainid, serverid, settingsid], data)
274
+ end
275
+
276
+ def delete_radiussettings(domainid, serverid, settingsid, data)
277
+ # delete radius settings
278
+ call_api(ENDPOINTS[:radiussettings][:delete], [domainid, serverid, settingsid], data)
279
+ end
280
+
281
+ def get_organizations
282
+ # get organizations
283
+ call_api(ENDPOINTS[:organizations][:list])
284
+ end
285
+
286
+ def get_organization(orgid)
287
+ # get organization
288
+ call_api(ENDPOINTS[:organizations][:get], [orgid])
289
+ end
290
+
291
+ def create_organization(data)
292
+ # create an organization
293
+ call_api(ENDPOINTS[:organizations][:new], [], data)
294
+ end
295
+
296
+ def update_organization(orgid, data)
297
+ # update an organization
298
+ call_api(ENDPOINTS[:organizations][:update], [orgid], data)
299
+ end
300
+
301
+ def delete_organization(orgid)
302
+ # delete an organization
303
+ call_api(ENDPOINTS[:organizations][:delete], [orgid])
304
+ end
305
+
306
+ def get_relay(relayid)
307
+ # get a relay setting
308
+ call_api(ENDPOINTS[:relays][:get], [relayid])
309
+ end
310
+
311
+ def create_relay(orgid, data)
312
+ # create a relay setting
313
+ call_api(ENDPOINTS[:relays][:new], [orgid], data)
314
+ end
315
+
316
+ def update_relay(relayid, data)
317
+ # update relay settings
318
+ call_api(ENDPOINTS[:relays][:update], [relayid], data)
319
+ end
320
+
321
+ def delete_relay(relayid, data)
322
+ # delete relay settings
323
+ call_api(ENDPOINTS[:relays][:delete], [relayid], data)
324
+ end
325
+
326
+ def get_status
327
+ # get status
328
+ call_api(ENDPOINTS[:status])
329
+ end
330
+
331
+ def get_params(params)
332
+ # convert params has to string
333
+ if params then
334
+ params.collect {|k,v| "#{k}=#{CGI::escape(v.to_s)}"}.join('&')
335
+ else
336
+ params
337
+ end
338
+ end
339
+
340
+ def parse_url(endpoint, opts, params=false)
341
+ if opts.length > 0 then
342
+ endpoint_string = endpoint[:name] % opts
343
+ else
344
+ endpoint_string = endpoint[:name]
345
+ end
346
+ url_string = @baruwa_url + endpoint_string
347
+ url_string << params if params
348
+ uri = URI.parse(url_string)
349
+ end
350
+
351
+ def set_headers
352
+ {
353
+ 'Content-Type' =>'application/json',
354
+ 'User-Agent' => 'BaruwaAPI/Ruby',
355
+ 'Authorization' => 'Bearer %s' % @baruwa_token
356
+ }
357
+ end
358
+
359
+ def get_request(endpoint, url)
360
+ case endpoint[:method]
361
+ when :post
362
+ Net::HTTP::Post.new(url.request_uri, set_headers)
363
+ when :get
364
+ Net::HTTP::Get.new(url.request_uri, set_headers)
365
+ when :put
366
+ Net::HTTP::Put.new(url.request_uri, set_headers)
367
+ when :delete
368
+ Net::HTTP::Delete.new(url.request_uri, set_headers)
369
+ else
370
+ throw "Unknown call method #{endpoint[:method]}"
371
+ end
372
+ end
373
+
374
+ def parse_response(response)
375
+ if response.code.to_i == 200 || response.code.to_i == 201
376
+ if response.body.nil? || response.body.blank?
377
+ {:code => response.code.to_i, :message => "Completed successfully"}
378
+ else
379
+ JSON.parse(response.body)
380
+ end
381
+ else
382
+ raise BaruwaApiError.new("#{response.code} #{response.body.to_s}")
383
+ end
384
+ end
385
+
386
+ def call_api(endpoint, opts=[], data=false, params=false)
387
+ url = parse_url(endpoint, opts, params)
388
+ call = get_request(endpoint, url)
389
+ call.body = get_params(data)
390
+ request = Net::HTTP.new(url.host, url.port)
391
+ usessl = @baruwa_url.match('https')
392
+ request.use_ssl = usessl
393
+ if usessl
394
+ if @ssl_verify == false
395
+ request.verify_mode = OpenSSL::SSL::VERIFY_NONE
396
+ end
397
+ end
398
+ response = request.start {|http| http.request(call)}
399
+ parse_response(response)
400
+ end
401
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Test Aliases' do
4
+ before(:each) do
5
+ WebMock.reset!
6
+ end
7
+
8
+ before do
9
+ @baruwapi = BaruwaAPI.new('https://testbaruwa.com', '6e2347bc-278e-42f6-a84b-fa1766140cbd')
10
+ end
11
+
12
+ it 'should get aliases' do
13
+ addressid = 2
14
+ stub_request(:get, "https://testbaruwa.com/api/v1/aliasaddresses/#{addressid}").
15
+ with(:body => false,
16
+ :headers => {'Accept'=>'*/*',
17
+ 'Content-Type'=>'application/json',
18
+ 'User-Agent'=>'BaruwaAPI/Ruby',
19
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
20
+ to_return(:status => 200, :body => "", :headers => {})
21
+ @baruwapi.get_aliases(addressid)
22
+ expect(WebMock).to have_requested(:get, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/aliasaddresses/#{addressid}")
23
+ end
24
+
25
+ it 'should create an alias' do
26
+ addressid = 2
27
+ stub_request(:post, "https://testbaruwa.com/api/v1/aliasaddresses/#{addressid}").
28
+ with(:body => {},
29
+ :headers => {'Accept'=>'*/*',
30
+ 'Content-Type'=>'application/json',
31
+ 'User-Agent'=>'BaruwaAPI/Ruby',
32
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
33
+ to_return(:status => 200, :body => "", :headers => {})
34
+ @baruwapi.create_alias(addressid, {})
35
+ expect(WebMock).to have_requested(:post, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/aliasaddresses/#{addressid}")
36
+ end
37
+
38
+ it 'should update an alias' do
39
+ addressid = 2
40
+ stub_request(:put, "https://testbaruwa.com/api/v1/aliasaddresses/#{addressid}").
41
+ with(:body => {},
42
+ :headers => {'Accept'=>'*/*',
43
+ 'Content-Type'=>'application/json',
44
+ 'User-Agent'=>'BaruwaAPI/Ruby',
45
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
46
+ to_return(:status => 200, :body => "", :headers => {})
47
+ @baruwapi.update_alias(addressid, {})
48
+ expect(WebMock).to have_requested(:put, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/aliasaddresses/#{addressid}")
49
+ end
50
+
51
+ it 'should delete an alias' do
52
+ addressid = 2
53
+ stub_request(:delete, "https://testbaruwa.com/api/v1/aliasaddresses/#{addressid}").
54
+ with(:body => {},
55
+ :headers => {'Accept'=>'*/*',
56
+ 'Content-Type'=>'application/json',
57
+ 'User-Agent'=>'BaruwaAPI/Ruby',
58
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
59
+ to_return(:status => 200, :body => "", :headers => {})
60
+ @baruwapi.delete_alias(addressid, {})
61
+ expect(WebMock).to have_requested(:delete, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/aliasaddresses/#{addressid}")
62
+ end
63
+ end
@@ -0,0 +1,79 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Test Authentication Settings' do
4
+ before(:each) do
5
+ WebMock.reset!
6
+ end
7
+
8
+ before do
9
+ @baruwapi = BaruwaAPI.new('https://testbaruwa.com', '6e2347bc-278e-42f6-a84b-fa1766140cbd')
10
+ end
11
+
12
+ it 'should get auth servers' do
13
+ domainid = 10
14
+ stub_request(:get, "https://testbaruwa.com/api/v1/authservers/#{domainid}").
15
+ with(:body => false,
16
+ :headers => {'Accept'=>'*/*',
17
+ 'Content-Type'=>'application/json',
18
+ 'User-Agent'=>'BaruwaAPI/Ruby',
19
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
20
+ to_return(:status => 200, :body => "", :headers => {})
21
+ @baruwapi.get_authservers(domainid)
22
+ expect(WebMock).to have_requested(:get, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/authservers/#{domainid}")
23
+ end
24
+
25
+ it 'should get auth server' do
26
+ domainid = 10
27
+ serverid = 10
28
+ stub_request(:get, "https://testbaruwa.com/api/v1/authservers/#{domainid}/#{serverid}").
29
+ with(:body => false,
30
+ :headers => {'Accept'=>'*/*',
31
+ 'Content-Type'=>'application/json',
32
+ 'User-Agent'=>'BaruwaAPI/Ruby',
33
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
34
+ to_return(:status => 200, :body => "", :headers => {})
35
+ @baruwapi.get_authserver(domainid, serverid)
36
+ expect(WebMock).to have_requested(:get, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/authservers/#{domainid}/#{serverid}")
37
+ end
38
+
39
+ it 'should create an auth server' do
40
+ domainid = 10
41
+ stub_request(:post, "https://testbaruwa.com/api/v1/authservers/#{domainid}").
42
+ with(:body => {},
43
+ :headers => {'Accept'=>'*/*',
44
+ 'Content-Type'=>'application/json',
45
+ 'User-Agent'=>'BaruwaAPI/Ruby',
46
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
47
+ to_return(:status => 200, :body => "", :headers => {})
48
+ @baruwapi.create_authserver(domainid, {})
49
+ expect(WebMock).to have_requested(:post, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/authservers/#{domainid}")
50
+ end
51
+
52
+ it 'should update an auth server' do
53
+ domainid = 10
54
+ serverid = 10
55
+ stub_request(:put, "https://testbaruwa.com/api/v1/authservers/#{domainid}/#{serverid}").
56
+ with(:body => {},
57
+ :headers => {'Accept'=>'*/*',
58
+ 'Content-Type'=>'application/json',
59
+ 'User-Agent'=>'BaruwaAPI/Ruby',
60
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
61
+ to_return(:status => 200, :body => "", :headers => {})
62
+ @baruwapi.update_authserver(domainid, serverid, {})
63
+ expect(WebMock).to have_requested(:put, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/authservers/#{domainid}/#{serverid}")
64
+ end
65
+
66
+ it 'should delete an auth server' do
67
+ domainid = 10
68
+ serverid = 10
69
+ stub_request(:delete, "https://testbaruwa.com/api/v1/authservers/#{domainid}/#{serverid}").
70
+ with(:body => {},
71
+ :headers => {'Accept'=>'*/*',
72
+ 'Content-Type'=>'application/json',
73
+ 'User-Agent'=>'BaruwaAPI/Ruby',
74
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
75
+ to_return(:status => 200, :body => "", :headers => {})
76
+ @baruwapi.delete_authserver(domainid, serverid, {})
77
+ expect(WebMock).to have_requested(:delete, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/authservers/#{domainid}/#{serverid}")
78
+ end
79
+ end
@@ -0,0 +1,79 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Test Delivery servers' do
4
+ before(:each) do
5
+ WebMock.reset!
6
+ end
7
+
8
+ before do
9
+ @baruwapi = BaruwaAPI.new('https://testbaruwa.com', '6e2347bc-278e-42f6-a84b-fa1766140cbd')
10
+ end
11
+
12
+ it 'should get delivery servers' do
13
+ domainid = 10
14
+ stub_request(:get, "https://testbaruwa.com/api/v1/deliveryservers/#{domainid}").
15
+ with(:body => false,
16
+ :headers => {'Accept'=>'*/*',
17
+ 'Content-Type'=>'application/json',
18
+ 'User-Agent'=>'BaruwaAPI/Ruby',
19
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
20
+ to_return(:status => 200, :body => "", :headers => {})
21
+ @baruwapi.get_deliveryservers(domainid)
22
+ expect(WebMock).to have_requested(:get, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/deliveryservers/#{domainid}")
23
+ end
24
+
25
+ it 'should get a delivery server' do
26
+ domainid = 10
27
+ serverid = 10
28
+ stub_request(:get, "https://testbaruwa.com/api/v1/deliveryservers/#{domainid}/#{serverid}").
29
+ with(:body => false,
30
+ :headers => {'Accept'=>'*/*',
31
+ 'Content-Type'=>'application/json',
32
+ 'User-Agent'=>'BaruwaAPI/Ruby',
33
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
34
+ to_return(:status => 200, :body => "", :headers => {})
35
+ @baruwapi.get_deliveryserver(domainid, serverid)
36
+ expect(WebMock).to have_requested(:get, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/deliveryservers/#{domainid}/#{serverid}")
37
+ end
38
+
39
+ it 'should create a delivery server' do
40
+ domainid = 10
41
+ stub_request(:post, "https://testbaruwa.com/api/v1/deliveryservers/#{domainid}").
42
+ with(:body => {},
43
+ :headers => {'Accept'=>'*/*',
44
+ 'Content-Type'=>'application/json',
45
+ 'User-Agent'=>'BaruwaAPI/Ruby',
46
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
47
+ to_return(:status => 200, :body => "", :headers => {})
48
+ @baruwapi.create_deliveryserver(domainid, {})
49
+ expect(WebMock).to have_requested(:post, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/deliveryservers/#{domainid}")
50
+ end
51
+
52
+ it 'should update a delivery server' do
53
+ domainid = 10
54
+ serverid = 10
55
+ stub_request(:put, "https://testbaruwa.com/api/v1/deliveryservers/#{domainid}/#{serverid}").
56
+ with(:body => {},
57
+ :headers => {'Accept'=>'*/*',
58
+ 'Content-Type'=>'application/json',
59
+ 'User-Agent'=>'BaruwaAPI/Ruby',
60
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
61
+ to_return(:status => 200, :body => "", :headers => {})
62
+ @baruwapi.update_deliveryserver(domainid, serverid, {})
63
+ expect(WebMock).to have_requested(:put, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/deliveryservers/#{domainid}/#{serverid}")
64
+ end
65
+
66
+ it 'should delete a delivery server' do
67
+ domainid = 10
68
+ serverid = 10
69
+ stub_request(:delete, "https://testbaruwa.com/api/v1/deliveryservers/#{domainid}/#{serverid}").
70
+ with(:body => {},
71
+ :headers => {'Accept'=>'*/*',
72
+ 'Content-Type'=>'application/json',
73
+ 'User-Agent'=>'BaruwaAPI/Ruby',
74
+ 'Authorization'=>'Bearer 6e2347bc-278e-42f6-a84b-fa1766140cbd'}).
75
+ to_return(:status => 200, :body => "", :headers => {})
76
+ @baruwapi.delete_deliveryserver(domainid, serverid, {})
77
+ expect(WebMock).to have_requested(:delete, "#{@baruwapi.instance_variable_get(:@baruwa_url)}/deliveryservers/#{domainid}/#{serverid}")
78
+ end
79
+ end