flapjack 0.7.34 → 0.7.35
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +7 -0
- data/Gemfile +1 -0
- data/bin/flapper +22 -11
- data/lib/flapjack/data/alert.rb +4 -2
- data/lib/flapjack/data/entity.rb +10 -0
- data/lib/flapjack/data/entity_check.rb +74 -0
- data/lib/flapjack/gateways/api.rb +46 -42
- data/lib/flapjack/gateways/web.rb +11 -10
- data/lib/flapjack/gateways/web/public/img/flapjack-favicon-64-32-24-16.ico +0 -0
- data/lib/flapjack/gateways/web/views/contact.html.erb +27 -27
- data/lib/flapjack/gateways/web/views/self_stats.html.erb +10 -0
- data/lib/flapjack/logger.rb +6 -0
- data/lib/flapjack/version.rb +1 -1
- data/spec/lib/flapjack/gateways/api/contact_methods_spec.rb +55 -58
- data/spec/lib/flapjack/gateways/api/entity_methods_spec.rb +56 -61
- data/spec/lib/flapjack/gateways/web_spec.rb +13 -14
- data/spec/spec_helper.rb +9 -0
- metadata +4 -7
- data/lib/flapjack/checks/http_content +0 -15
- data/lib/flapjack/checks/ping +0 -10
- data/lib/flapjack/gateways/web/public/img/flapjack-favicon-32-16.ico +0 -0
data/lib/flapjack/logger.rb
CHANGED
@@ -112,6 +112,12 @@ module Flapjack
|
|
112
112
|
(LEVELS + [:configure, :close, :add]).include?(sym)
|
113
113
|
end
|
114
114
|
|
115
|
+
['debug', 'info', 'warn', 'error', 'fatal'].each { |level|
|
116
|
+
define_method("#{level}?") {
|
117
|
+
@logger.send("#{level}?")
|
118
|
+
}
|
119
|
+
}
|
120
|
+
|
115
121
|
end
|
116
122
|
|
117
123
|
end
|
data/lib/flapjack/version.rb
CHANGED
@@ -57,9 +57,6 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
57
57
|
Flapjack::Gateways::API.class_eval {
|
58
58
|
set :raise_errors, true
|
59
59
|
}
|
60
|
-
Flapjack::Gateways::API.instance_variable_get('@middleware').delete_if {|m|
|
61
|
-
m[0] == Rack::FiberPool
|
62
|
-
}
|
63
60
|
end
|
64
61
|
|
65
62
|
before(:each) do
|
@@ -88,14 +85,14 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
88
85
|
Flapjack::Data::Contact.should_receive(:all).with(:redis => redis).and_return([])
|
89
86
|
Flapjack::Data::Contact.should_receive(:add).twice
|
90
87
|
|
91
|
-
|
88
|
+
apost "/contacts", contacts.to_json, {'CONTENT_TYPE' => 'application/json'}
|
92
89
|
last_response.status.should == 204
|
93
90
|
end
|
94
91
|
|
95
92
|
it "does not create contacts if the data is improperly formatted" do
|
96
93
|
Flapjack::Data::Contact.should_not_receive(:add)
|
97
94
|
|
98
|
-
|
95
|
+
apost "/contacts", {'contacts' => ["Hello", "again"]}.to_json,
|
99
96
|
{'CONTENT_TYPE' => 'application/json'}
|
100
97
|
last_response.status.should == 403
|
101
98
|
end
|
@@ -118,7 +115,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
118
115
|
Flapjack::Data::Contact.should_receive(:all).with(:redis => redis).and_return([])
|
119
116
|
Flapjack::Data::Contact.should_receive(:add)
|
120
117
|
|
121
|
-
|
118
|
+
apost "/contacts", contacts.to_json, {'CONTENT_TYPE' => 'application/json'}
|
122
119
|
last_response.status.should == 204
|
123
120
|
end
|
124
121
|
|
@@ -145,7 +142,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
145
142
|
Flapjack::Data::Contact.should_receive(:all).with(:redis => redis).and_return([existing])
|
146
143
|
Flapjack::Data::Contact.should_receive(:add).with(contacts['contacts'][0], :redis => redis)
|
147
144
|
|
148
|
-
|
145
|
+
apost "/contacts", contacts.to_json, {'CONTENT_TYPE' => 'application/json'}
|
149
146
|
last_response.status.should == 204
|
150
147
|
end
|
151
148
|
|
@@ -166,7 +163,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
166
163
|
Flapjack::Data::Contact.should_receive(:all).with(:redis => redis).and_return([existing])
|
167
164
|
Flapjack::Data::Contact.should_receive(:add).with(contacts['contacts'][0], :redis => redis)
|
168
165
|
|
169
|
-
|
166
|
+
apost "/contacts", contacts.to_json, {'CONTENT_TYPE' => 'application/json'}
|
170
167
|
last_response.status.should == 204
|
171
168
|
end
|
172
169
|
|
@@ -175,7 +172,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
175
172
|
Flapjack::Data::Contact.should_receive(:all).with(:redis => redis).
|
176
173
|
and_return([contact])
|
177
174
|
|
178
|
-
|
175
|
+
aget '/contacts'
|
179
176
|
last_response.should be_ok
|
180
177
|
last_response.body.should be_json_eql([contact_core].to_json)
|
181
178
|
end
|
@@ -185,7 +182,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
185
182
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
186
183
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
187
184
|
|
188
|
-
|
185
|
+
aget "/contacts/#{contact.id}"
|
189
186
|
last_response.should be_ok
|
190
187
|
last_response.body.should be_json_eql(contact_core.to_json)
|
191
188
|
end
|
@@ -194,7 +191,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
194
191
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
195
192
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
196
193
|
|
197
|
-
|
194
|
+
aget "/contacts/#{contact.id}"
|
198
195
|
last_response.should be_forbidden
|
199
196
|
end
|
200
197
|
|
@@ -208,7 +205,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
208
205
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
209
206
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
210
207
|
|
211
|
-
|
208
|
+
aget "/contacts/#{contact.id}/notification_rules"
|
212
209
|
last_response.should be_ok
|
213
210
|
last_response.body.should be_json_eql( '["rule_1", "rule_2"]' )
|
214
211
|
end
|
@@ -217,7 +214,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
217
214
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
218
215
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
219
216
|
|
220
|
-
|
217
|
+
aget "/contacts/#{contact.id}/notification_rules"
|
221
218
|
last_response.should be_forbidden
|
222
219
|
end
|
223
220
|
|
@@ -226,7 +223,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
226
223
|
Flapjack::Data::NotificationRule.should_receive(:find_by_id).
|
227
224
|
with(notification_rule.id, {:redis => redis, :logger => @logger}).and_return(notification_rule)
|
228
225
|
|
229
|
-
|
226
|
+
aget "/notification_rules/#{notification_rule.id}"
|
230
227
|
last_response.should be_ok
|
231
228
|
last_response.body.should be_json_eql('"rule_1"')
|
232
229
|
end
|
@@ -235,7 +232,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
235
232
|
Flapjack::Data::NotificationRule.should_receive(:find_by_id).
|
236
233
|
with(notification_rule.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
237
234
|
|
238
|
-
|
235
|
+
aget "/notification_rules/#{notification_rule.id}"
|
239
236
|
last_response.should be_forbidden
|
240
237
|
end
|
241
238
|
|
@@ -255,7 +252,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
255
252
|
contact.should_receive(:add_notification_rule).
|
256
253
|
with(notification_rule_data_sym, :logger => @logger).and_return(notification_rule)
|
257
254
|
|
258
|
-
|
255
|
+
apost "/notification_rules", notification_rule_data.to_json,
|
259
256
|
{'CONTENT_TYPE' => 'application/json'}
|
260
257
|
last_response.should be_ok
|
261
258
|
last_response.body.should be_json_eql('"rule_1"')
|
@@ -265,7 +262,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
265
262
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
266
263
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
267
264
|
|
268
|
-
|
265
|
+
apost "/notification_rules", notification_rule_data.to_json,
|
269
266
|
{'CONTENT_TYPE' => 'application/json'}
|
270
267
|
last_response.should be_forbidden
|
271
268
|
end
|
@@ -273,7 +270,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
273
270
|
it "does not create a notification_rule if a rule id is provided" do
|
274
271
|
contact.should_not_receive(:add_notification_rule)
|
275
272
|
|
276
|
-
|
273
|
+
apost "/notification_rules", notification_rule_data.merge(:id => 1).to_json,
|
277
274
|
{'CONTENT_TYPE' => 'application/json'}
|
278
275
|
last_response.status.should == 403
|
279
276
|
end
|
@@ -294,7 +291,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
294
291
|
|
295
292
|
notification_rule.should_receive(:update).with(notification_rule_data_sym, :logger => @logger).and_return(nil)
|
296
293
|
|
297
|
-
|
294
|
+
aput "/notification_rules/#{notification_rule.id}", notification_rule_data.to_json,
|
298
295
|
{'CONTENT_TYPE' => 'application/json'}
|
299
296
|
last_response.should be_ok
|
300
297
|
last_response.body.should be_json_eql('"rule_1"')
|
@@ -304,7 +301,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
304
301
|
Flapjack::Data::NotificationRule.should_receive(:find_by_id).
|
305
302
|
with(notification_rule.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
306
303
|
|
307
|
-
|
304
|
+
aput "/notification_rules/#{notification_rule.id}", notification_rule_data
|
308
305
|
last_response.should be_forbidden
|
309
306
|
end
|
310
307
|
|
@@ -314,7 +311,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
314
311
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
315
312
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
316
313
|
|
317
|
-
|
314
|
+
aput "/notification_rules/#{notification_rule.id}", notification_rule_data.to_json,
|
318
315
|
{'CONTENT_TYPE' => 'application/json'}
|
319
316
|
last_response.should be_forbidden
|
320
317
|
end
|
@@ -328,7 +325,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
328
325
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
329
326
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
330
327
|
|
331
|
-
|
328
|
+
adelete "/notification_rules/#{notification_rule.id}"
|
332
329
|
last_response.status.should == 204
|
333
330
|
end
|
334
331
|
|
@@ -336,7 +333,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
336
333
|
Flapjack::Data::NotificationRule.should_receive(:find_by_id).
|
337
334
|
with(notification_rule.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
338
335
|
|
339
|
-
|
336
|
+
adelete "/notification_rules/#{notification_rule.id}"
|
340
337
|
last_response.should be_forbidden
|
341
338
|
end
|
342
339
|
|
@@ -347,7 +344,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
347
344
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
348
345
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
349
346
|
|
350
|
-
|
347
|
+
adelete "/notification_rules/#{notification_rule.id}"
|
351
348
|
last_response.should be_forbidden
|
352
349
|
end
|
353
350
|
|
@@ -364,7 +361,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
364
361
|
'rollup_threshold' => media_rollup_thresholds[m] }]
|
365
362
|
}).flatten(1)].to_json
|
366
363
|
|
367
|
-
|
364
|
+
aget "/contacts/#{contact.id}/media"
|
368
365
|
last_response.should be_ok
|
369
366
|
last_response.body.should be_json_eql(result)
|
370
367
|
end
|
@@ -373,7 +370,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
373
370
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
374
371
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
375
372
|
|
376
|
-
|
373
|
+
aget "/contacts/#{contact.id}/media"
|
377
374
|
last_response.should be_forbidden
|
378
375
|
end
|
379
376
|
|
@@ -391,7 +388,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
391
388
|
'rollup_threshold' => media_rollup_thresholds['sms'],
|
392
389
|
}
|
393
390
|
|
394
|
-
|
391
|
+
aget "/contacts/#{contact.id}/media/sms"
|
395
392
|
last_response.should be_ok
|
396
393
|
last_response.body.should be_json_eql(result.to_json)
|
397
394
|
end
|
@@ -400,7 +397,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
400
397
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
401
398
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
402
399
|
|
403
|
-
|
400
|
+
aget "/contacts/#{contact.id}/media/sms"
|
404
401
|
last_response.should be_forbidden
|
405
402
|
end
|
406
403
|
|
@@ -409,7 +406,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
409
406
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
410
407
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
411
408
|
|
412
|
-
|
409
|
+
aget "/contacts/#{contact.id}/media/telepathy"
|
413
410
|
last_response.should be_forbidden
|
414
411
|
end
|
415
412
|
|
@@ -434,7 +431,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
434
431
|
'interval' => alt_media_intervals['sms'],
|
435
432
|
'rollup_threshold' => alt_media_rollup_thresholds['sms']}
|
436
433
|
|
437
|
-
|
434
|
+
aput "/contacts/#{contact.id}/media/sms", :address => '04987654321',
|
438
435
|
:interval => '200', :rollup_threshold => '5'
|
439
436
|
last_response.should be_ok
|
440
437
|
last_response.body.should be_json_eql(result.to_json)
|
@@ -451,7 +448,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
451
448
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
452
449
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
453
450
|
|
454
|
-
|
451
|
+
aput "/contacts/#{contact.id}/media/pagerduty", :service_key => result['service_key'],
|
455
452
|
:subdomain => result['subdomain'], :username => result['username'],
|
456
453
|
:password => result['password']
|
457
454
|
|
@@ -463,7 +460,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
463
460
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
464
461
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
465
462
|
|
466
|
-
|
463
|
+
aput "/contacts/#{contact.id}/media/sms", :address => '04987654321', :interval => '200'
|
467
464
|
last_response.should be_forbidden
|
468
465
|
end
|
469
466
|
|
@@ -471,7 +468,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
471
468
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
472
469
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
473
470
|
|
474
|
-
|
471
|
+
aput "/contacts/#{contact.id}/media/sms", :interval => '200'
|
475
472
|
last_response.should be_forbidden
|
476
473
|
end
|
477
474
|
|
@@ -489,7 +486,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
489
486
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
490
487
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
491
488
|
|
492
|
-
|
489
|
+
aput "/contacts/#{contact.id}/media/sms", :address => '04987654321'
|
493
490
|
last_response.should be_ok
|
494
491
|
end
|
495
492
|
|
@@ -498,7 +495,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
498
495
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
499
496
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
500
497
|
|
501
|
-
|
498
|
+
adelete "/contacts/#{contact.id}/media/sms"
|
502
499
|
last_response.status.should == 204
|
503
500
|
end
|
504
501
|
|
@@ -506,7 +503,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
506
503
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
507
504
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
508
505
|
|
509
|
-
|
506
|
+
adelete "/contacts/#{contact.id}/media/sms"
|
510
507
|
last_response.should be_forbidden
|
511
508
|
end
|
512
509
|
|
@@ -516,7 +513,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
516
513
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
517
514
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
518
515
|
|
519
|
-
|
516
|
+
aget "/contacts/#{contact.id}/timezone"
|
520
517
|
last_response.should be_ok
|
521
518
|
last_response.body.should be_json_eql('"Australia/Sydney"')
|
522
519
|
end
|
@@ -525,7 +522,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
525
522
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
526
523
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
527
524
|
|
528
|
-
|
525
|
+
aget "/contacts/#{contact.id}/timezone"
|
529
526
|
last_response.should be_forbidden
|
530
527
|
end
|
531
528
|
|
@@ -536,7 +533,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
536
533
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
537
534
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
538
535
|
|
539
|
-
|
536
|
+
aput "/contacts/#{contact.id}/timezone", {:timezone => 'Australia/Perth'}
|
540
537
|
last_response.should be_ok
|
541
538
|
end
|
542
539
|
|
@@ -544,7 +541,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
544
541
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
545
542
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
546
543
|
|
547
|
-
|
544
|
+
aput "/contacts/#{contact.id}/timezone", {:timezone => 'Australia/Perth'}
|
548
545
|
last_response.should be_forbidden
|
549
546
|
end
|
550
547
|
|
@@ -554,7 +551,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
554
551
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
555
552
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
556
553
|
|
557
|
-
|
554
|
+
adelete "/contacts/#{contact.id}/timezone"
|
558
555
|
last_response.status.should == 204
|
559
556
|
end
|
560
557
|
|
@@ -562,7 +559,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
562
559
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
563
560
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
564
561
|
|
565
|
-
|
562
|
+
adelete "/contacts/#{contact.id}/timezone"
|
566
563
|
last_response.should be_forbidden
|
567
564
|
end
|
568
565
|
|
@@ -572,7 +569,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
572
569
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
573
570
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
574
571
|
|
575
|
-
|
572
|
+
apost "contacts/#{contact.id}/tags", :tag => 'web'
|
576
573
|
last_response.should be_ok
|
577
574
|
last_response.body.should be_json_eql( ['web'].to_json )
|
578
575
|
end
|
@@ -581,7 +578,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
581
578
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
582
579
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
583
580
|
|
584
|
-
|
581
|
+
apost "contacts/#{contact.id}/tags", :tag => 'web'
|
585
582
|
last_response.should be_forbidden
|
586
583
|
end
|
587
584
|
|
@@ -591,7 +588,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
591
588
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
592
589
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
593
590
|
|
594
|
-
|
591
|
+
apost "contacts/#{contact.id}/tags", :tag => ['web', 'app']
|
595
592
|
last_response.should be_ok
|
596
593
|
last_response.body.should be_json_eql( ['web', 'app'].to_json )
|
597
594
|
end
|
@@ -600,7 +597,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
600
597
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
601
598
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
602
599
|
|
603
|
-
|
600
|
+
apost "contacts/#{contact.id}/tags", :tag => ['web', 'app']
|
604
601
|
last_response.should be_forbidden
|
605
602
|
end
|
606
603
|
|
@@ -609,7 +606,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
609
606
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
610
607
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
611
608
|
|
612
|
-
|
609
|
+
adelete "contacts/#{contact.id}/tags", :tag => 'web'
|
613
610
|
last_response.status.should == 204
|
614
611
|
end
|
615
612
|
|
@@ -617,7 +614,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
617
614
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
618
615
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
619
616
|
|
620
|
-
|
617
|
+
adelete "contacts/#{contact.id}/tags", :tag => 'web'
|
621
618
|
last_response.should be_forbidden
|
622
619
|
end
|
623
620
|
|
@@ -626,7 +623,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
626
623
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
627
624
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
628
625
|
|
629
|
-
|
626
|
+
adelete "contacts/#{contact.id}/tags", :tag => ['web', 'app']
|
630
627
|
last_response.status.should == 204
|
631
628
|
end
|
632
629
|
|
@@ -634,7 +631,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
634
631
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
635
632
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
636
633
|
|
637
|
-
|
634
|
+
adelete "contacts/#{contact.id}/tags", :tag => ['web', 'app']
|
638
635
|
last_response.should be_forbidden
|
639
636
|
end
|
640
637
|
|
@@ -643,7 +640,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
643
640
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
644
641
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
645
642
|
|
646
|
-
|
643
|
+
aget "contacts/#{contact.id}/tags"
|
647
644
|
last_response.should be_ok
|
648
645
|
last_response.body.should be_json_eql( ['web', 'app'].to_json )
|
649
646
|
end
|
@@ -652,7 +649,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
652
649
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
653
650
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
654
651
|
|
655
|
-
|
652
|
+
aget "contacts/#{contact.id}/tags"
|
656
653
|
last_response.should be_forbidden
|
657
654
|
end
|
658
655
|
|
@@ -669,7 +666,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
669
666
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
670
667
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
671
668
|
|
672
|
-
|
669
|
+
aget "contacts/#{contact.id}/entity_tags"
|
673
670
|
last_response.should be_ok
|
674
671
|
tag_response = {'entity_1' => ['web'],
|
675
672
|
'entity_2' => ['app']}
|
@@ -680,7 +677,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
680
677
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
681
678
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
682
679
|
|
683
|
-
|
680
|
+
aget "contacts/#{contact.id}/entity_tags"
|
684
681
|
last_response.should be_forbidden
|
685
682
|
end
|
686
683
|
|
@@ -701,7 +698,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
701
698
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
702
699
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
703
700
|
|
704
|
-
|
701
|
+
apost "contacts/#{contact.id}/entity_tags",
|
705
702
|
:entity => {'entity_1' => ['web'], 'entity_2' => ['app']}
|
706
703
|
last_response.should be_ok
|
707
704
|
tag_response = {'entity_1' => ['web'],
|
@@ -713,7 +710,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
713
710
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
714
711
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
715
712
|
|
716
|
-
|
713
|
+
apost "contacts/#{contact.id}/entity_tags",
|
717
714
|
:entity => {'entity_1' => ['web'], 'entity_2' => ['app']}
|
718
715
|
last_response.should be_forbidden
|
719
716
|
end
|
@@ -732,7 +729,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
732
729
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
733
730
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
|
734
731
|
|
735
|
-
|
732
|
+
adelete "contacts/#{contact.id}/entity_tags",
|
736
733
|
:entity => {'entity_1' => ['web'], 'entity_2' => ['app']}
|
737
734
|
last_response.status.should == 204
|
738
735
|
end
|
@@ -741,7 +738,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
|
|
741
738
|
Flapjack::Data::Contact.should_receive(:find_by_id).
|
742
739
|
with(contact.id, {:redis => redis, :logger => @logger}).and_return(nil)
|
743
740
|
|
744
|
-
|
741
|
+
adelete "contacts/#{contact.id}/entity_tags",
|
745
742
|
:entity => {'entity_1' => ['web'], 'entity_2' => ['app']}
|
746
743
|
last_response.should be_forbidden
|
747
744
|
end
|