rpush 8.0.0 → 9.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -6
- data/README.md +8 -65
- data/lib/generators/templates/rpush.rb +9 -16
- data/lib/rpush/client/active_model.rb +0 -4
- data/lib/rpush/client/active_record.rb +0 -3
- data/lib/rpush/client/redis.rb +0 -3
- data/lib/rpush/configuration.rb +2 -19
- data/lib/rpush/daemon/service_config_methods.rb +0 -2
- data/lib/rpush/daemon/store/active_record.rb +2 -14
- data/lib/rpush/daemon/store/interface.rb +2 -2
- data/lib/rpush/daemon/store/redis.rb +2 -11
- data/lib/rpush/daemon.rb +0 -10
- data/lib/rpush/reflection_collection.rb +1 -2
- data/lib/rpush/version.rb +1 -1
- data/lib/rpush.rb +0 -1
- data/spec/functional/cli_spec.rb +41 -15
- data/spec/functional/embed_spec.rb +57 -26
- data/spec/functional/retry_spec.rb +21 -4
- data/spec/functional/synchronization_spec.rb +1 -1
- data/spec/functional_spec_helper.rb +0 -6
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/client/active_record/shared/app.rb +1 -1
- data/spec/unit/daemon/shared/store.rb +0 -42
- metadata +49 -55
- data/lib/rpush/apns_feedback.rb +0 -18
- data/lib/rpush/client/active_model/gcm/app.rb +0 -19
- data/lib/rpush/client/active_model/gcm/expiry_collapse_key_mutual_inclusion_validator.rb +0 -14
- data/lib/rpush/client/active_model/gcm/notification.rb +0 -62
- data/lib/rpush/client/active_record/gcm/app.rb +0 -11
- data/lib/rpush/client/active_record/gcm/notification.rb +0 -11
- data/lib/rpush/client/redis/gcm/app.rb +0 -11
- data/lib/rpush/client/redis/gcm/notification.rb +0 -11
- data/lib/rpush/daemon/apns/delivery.rb +0 -43
- data/lib/rpush/daemon/apns/feedback_receiver.rb +0 -91
- data/lib/rpush/daemon/apns.rb +0 -17
- data/lib/rpush/daemon/dispatcher/apns_tcp.rb +0 -152
- data/lib/rpush/daemon/dispatcher/tcp.rb +0 -22
- data/lib/rpush/daemon/gcm/delivery.rb +0 -241
- data/lib/rpush/daemon/gcm.rb +0 -9
- data/lib/rpush/daemon/tcp_connection.rb +0 -190
- data/spec/functional/apns_spec.rb +0 -162
- data/spec/functional/gcm_priority_spec.rb +0 -40
- data/spec/functional/gcm_spec.rb +0 -46
- data/spec/functional/new_app_spec.rb +0 -44
- data/spec/unit/apns_feedback_spec.rb +0 -39
- data/spec/unit/client/active_record/gcm/app_spec.rb +0 -6
- data/spec/unit/client/active_record/gcm/notification_spec.rb +0 -14
- data/spec/unit/client/redis/gcm/app_spec.rb +0 -5
- data/spec/unit/client/redis/gcm/notification_spec.rb +0 -5
- data/spec/unit/client/shared/gcm/app.rb +0 -4
- data/spec/unit/client/shared/gcm/notification.rb +0 -77
- data/spec/unit/daemon/apns/delivery_spec.rb +0 -108
- data/spec/unit/daemon/apns/feedback_receiver_spec.rb +0 -137
- data/spec/unit/daemon/dispatcher/tcp_spec.rb +0 -32
- data/spec/unit/daemon/gcm/delivery_spec.rb +0 -387
- data/spec/unit/daemon/tcp_connection_spec.rb +0 -293
@@ -1,10 +1,12 @@
|
|
1
1
|
require 'functional_spec_helper'
|
2
2
|
|
3
3
|
describe 'Retries' do
|
4
|
-
let(:app) { Rpush::
|
5
|
-
let(:notification) { Rpush::
|
4
|
+
let(:app) { Rpush::Fcm::App.new }
|
5
|
+
let(:notification) { Rpush::Fcm::Notification.new }
|
6
6
|
let(:response) { double(Net::HTTPResponse, code: 200) }
|
7
7
|
let(:http) { double(Net::HTTP::Persistent, request: response, shutdown: nil) }
|
8
|
+
let(:fake_device_token) { 'a' * 108 }
|
9
|
+
let(:creds) {double(Google::Auth::UserRefreshCredentials)}
|
8
10
|
|
9
11
|
before do
|
10
12
|
Rpush::Daemon.common_init
|
@@ -14,7 +16,7 @@ describe 'Retries' do
|
|
14
16
|
app.save!
|
15
17
|
|
16
18
|
notification.app_id = app.id
|
17
|
-
notification.
|
19
|
+
notification.device_token = 'foo'
|
18
20
|
notification.data = { message: 'test' }
|
19
21
|
notification.save!
|
20
22
|
|
@@ -23,7 +25,22 @@ describe 'Retries' do
|
|
23
25
|
end
|
24
26
|
|
25
27
|
allow(Net::HTTP::Persistent).to receive_messages(new: http)
|
26
|
-
allow(
|
28
|
+
allow(creds).to receive(:fetch_access_token).and_return({'access_token': 'face_access_token'})
|
29
|
+
|
30
|
+
allow(::Google::Auth::ServiceAccountCredentials).to receive(:fetch_access_token).and_return({access_token: 'bbbbbb'})
|
31
|
+
allow(::Google::Auth::ServiceAccountCredentials).to receive(:make_creds).and_return(creds)
|
32
|
+
allow_any_instance_of(::Rpush::Daemon::Fcm::Delivery).to receive(:necessary_data_exists?).and_return(true)
|
33
|
+
|
34
|
+
example_success_body = {
|
35
|
+
"multicast_id": 108,
|
36
|
+
"success": 1,
|
37
|
+
"failure": 0,
|
38
|
+
"canonical_ids": 0,
|
39
|
+
"results": [
|
40
|
+
{ "message_id": "1:08" }
|
41
|
+
]
|
42
|
+
}.to_json
|
43
|
+
allow(response).to receive_messages(body: example_success_body)
|
27
44
|
end
|
28
45
|
|
29
46
|
it 'delivers a notification due to be retried' do
|
@@ -11,12 +11,6 @@ def timeout(&blk)
|
|
11
11
|
Timeout.timeout(10, &blk)
|
12
12
|
end
|
13
13
|
|
14
|
-
def stub_tcp_connection(tcp_socket, ssl_socket, io_double)
|
15
|
-
allow_any_instance_of(Rpush::Daemon::TcpConnection).to receive_messages(connect_socket: [tcp_socket, ssl_socket])
|
16
|
-
allow_any_instance_of(Rpush::Daemon::TcpConnection).to receive_messages(setup_ssl_context: double.as_null_object)
|
17
|
-
stub_const('Rpush::Daemon::TcpConnection::IO', io_double)
|
18
|
-
end
|
19
|
-
|
20
14
|
RSpec.configure do |config|
|
21
15
|
config.before(:each) do
|
22
16
|
Modis.with_connection do |redis|
|
data/spec/spec_helper.rb
CHANGED
@@ -8,7 +8,7 @@ shared_examples_for 'Rpush::Client::ActiveRecord::App' do
|
|
8
8
|
app = Rpush::Apns::App.new(name: 'test', environment: 'development', certificate: TEST_CERT)
|
9
9
|
expect(app.valid?).to eq(true)
|
10
10
|
|
11
|
-
app = Rpush::
|
11
|
+
app = Rpush::Fcm::App.new(name: 'test', environment: 'production', json_key: TEST_CERT)
|
12
12
|
expect(app.valid?).to eq(true)
|
13
13
|
end
|
14
14
|
end
|
@@ -233,48 +233,6 @@ shared_examples 'Rpush::Daemon::Store' do
|
|
233
233
|
end
|
234
234
|
end
|
235
235
|
|
236
|
-
describe 'create_apns_feedback' do
|
237
|
-
it 'creates the Feedback record' do
|
238
|
-
expect(Rpush::Apns::Feedback).to receive(:create!).with(
|
239
|
-
failed_at: time, device_token: 'ab' * 32, app_id: app.id
|
240
|
-
)
|
241
|
-
store.create_apns_feedback(time, 'ab' * 32, app)
|
242
|
-
end
|
243
|
-
end
|
244
|
-
|
245
|
-
describe 'create_gcm_notification' do
|
246
|
-
let(:data) { { 'data' => true } }
|
247
|
-
let(:attributes) { { device_token: 'ab' * 32 } }
|
248
|
-
let(:registration_ids) { %w[123 456] }
|
249
|
-
let(:deliver_after) { time + 10.seconds }
|
250
|
-
let(:args) { [attributes, data, registration_ids, deliver_after, app] }
|
251
|
-
|
252
|
-
it 'sets the given attributes' do
|
253
|
-
new_notification = store.create_gcm_notification(*args)
|
254
|
-
expect(new_notification.device_token).to eq 'ab' * 32
|
255
|
-
end
|
256
|
-
|
257
|
-
it 'sets the given data' do
|
258
|
-
new_notification = store.create_gcm_notification(*args)
|
259
|
-
expect(new_notification.data['data']).to be_truthy
|
260
|
-
end
|
261
|
-
|
262
|
-
it 'sets the given registration IDs' do
|
263
|
-
new_notification = store.create_gcm_notification(*args)
|
264
|
-
expect(new_notification.registration_ids).to eq registration_ids
|
265
|
-
end
|
266
|
-
|
267
|
-
it 'sets the deliver_after timestamp' do
|
268
|
-
new_notification = store.create_gcm_notification(*args)
|
269
|
-
expect(new_notification.deliver_after).to eq deliver_after
|
270
|
-
end
|
271
|
-
|
272
|
-
it 'saves the new notification' do
|
273
|
-
new_notification = store.create_gcm_notification(*args)
|
274
|
-
expect(new_notification.new_record?).to be_falsey
|
275
|
-
end
|
276
|
-
end
|
277
|
-
|
278
236
|
describe 'create_adm_notification' do
|
279
237
|
let(:data) { { 'data' => true } }
|
280
238
|
let(:attributes) { { app_id: app.id, collapse_key: 'ckey', delay_while_idle: true } }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rpush
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 9.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Leitch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-09-
|
11
|
+
date: 2024-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -78,7 +78,7 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - ">="
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
81
|
+
version: '6.0'
|
82
82
|
- - "<"
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: 7.1.0
|
@@ -88,7 +88,7 @@ dependencies:
|
|
88
88
|
requirements:
|
89
89
|
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: '
|
91
|
+
version: '6.0'
|
92
92
|
- - "<"
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: 7.1.0
|
@@ -328,14 +328,14 @@ dependencies:
|
|
328
328
|
requirements:
|
329
329
|
- - "~>"
|
330
330
|
- !ruby/object:Gem::Version
|
331
|
-
version: 1.
|
331
|
+
version: '1.66'
|
332
332
|
type: :development
|
333
333
|
prerelease: false
|
334
334
|
version_requirements: !ruby/object:Gem::Requirement
|
335
335
|
requirements:
|
336
336
|
- - "~>"
|
337
337
|
- !ruby/object:Gem::Version
|
338
|
-
version: 1.
|
338
|
+
version: '1.66'
|
339
339
|
- !ruby/object:Gem::Dependency
|
340
340
|
name: rubocop-performance
|
341
341
|
requirement: !ruby/object:Gem::Requirement
|
@@ -350,6 +350,48 @@ dependencies:
|
|
350
350
|
- - ">="
|
351
351
|
- !ruby/object:Gem::Version
|
352
352
|
version: '0'
|
353
|
+
- !ruby/object:Gem::Dependency
|
354
|
+
name: rubocop-rake
|
355
|
+
requirement: !ruby/object:Gem::Requirement
|
356
|
+
requirements:
|
357
|
+
- - ">="
|
358
|
+
- !ruby/object:Gem::Version
|
359
|
+
version: '0'
|
360
|
+
type: :development
|
361
|
+
prerelease: false
|
362
|
+
version_requirements: !ruby/object:Gem::Requirement
|
363
|
+
requirements:
|
364
|
+
- - ">="
|
365
|
+
- !ruby/object:Gem::Version
|
366
|
+
version: '0'
|
367
|
+
- !ruby/object:Gem::Dependency
|
368
|
+
name: rubocop-rspec
|
369
|
+
requirement: !ruby/object:Gem::Requirement
|
370
|
+
requirements:
|
371
|
+
- - ">="
|
372
|
+
- !ruby/object:Gem::Version
|
373
|
+
version: '0'
|
374
|
+
type: :development
|
375
|
+
prerelease: false
|
376
|
+
version_requirements: !ruby/object:Gem::Requirement
|
377
|
+
requirements:
|
378
|
+
- - ">="
|
379
|
+
- !ruby/object:Gem::Version
|
380
|
+
version: '0'
|
381
|
+
- !ruby/object:Gem::Dependency
|
382
|
+
name: rubocop-rails
|
383
|
+
requirement: !ruby/object:Gem::Requirement
|
384
|
+
requirements:
|
385
|
+
- - ">="
|
386
|
+
- !ruby/object:Gem::Version
|
387
|
+
version: '0'
|
388
|
+
type: :development
|
389
|
+
prerelease: false
|
390
|
+
version_requirements: !ruby/object:Gem::Requirement
|
391
|
+
requirements:
|
392
|
+
- - ">="
|
393
|
+
- !ruby/object:Gem::Version
|
394
|
+
version: '0'
|
353
395
|
- !ruby/object:Gem::Dependency
|
354
396
|
name: byebug
|
355
397
|
requirement: !ruby/object:Gem::Requirement
|
@@ -449,7 +491,6 @@ files:
|
|
449
491
|
- lib/generators/templates/rpush_4_2_0_updates.rb
|
450
492
|
- lib/generators/templates/rpush_7_1_0_updates.rb
|
451
493
|
- lib/rpush.rb
|
452
|
-
- lib/rpush/apns_feedback.rb
|
453
494
|
- lib/rpush/cli.rb
|
454
495
|
- lib/rpush/client/active_model.rb
|
455
496
|
- lib/rpush/client/active_model/adm/app.rb
|
@@ -468,9 +509,6 @@ files:
|
|
468
509
|
- lib/rpush/client/active_model/fcm/expiry_collapse_key_mutual_inclusion_validator.rb
|
469
510
|
- lib/rpush/client/active_model/fcm/notification.rb
|
470
511
|
- lib/rpush/client/active_model/fcm/notification_keys_in_allowed_list_validator.rb
|
471
|
-
- lib/rpush/client/active_model/gcm/app.rb
|
472
|
-
- lib/rpush/client/active_model/gcm/expiry_collapse_key_mutual_inclusion_validator.rb
|
473
|
-
- lib/rpush/client/active_model/gcm/notification.rb
|
474
512
|
- lib/rpush/client/active_model/notification.rb
|
475
513
|
- lib/rpush/client/active_model/payload_data_size_validator.rb
|
476
514
|
- lib/rpush/client/active_model/pushy/app.rb
|
@@ -497,8 +535,6 @@ files:
|
|
497
535
|
- lib/rpush/client/active_record/app.rb
|
498
536
|
- lib/rpush/client/active_record/fcm/app.rb
|
499
537
|
- lib/rpush/client/active_record/fcm/notification.rb
|
500
|
-
- lib/rpush/client/active_record/gcm/app.rb
|
501
|
-
- lib/rpush/client/active_record/gcm/notification.rb
|
502
538
|
- lib/rpush/client/active_record/notification.rb
|
503
539
|
- lib/rpush/client/active_record/pushy/app.rb
|
504
540
|
- lib/rpush/client/active_record/pushy/notification.rb
|
@@ -523,8 +559,6 @@ files:
|
|
523
559
|
- lib/rpush/client/redis/app.rb
|
524
560
|
- lib/rpush/client/redis/fcm/app.rb
|
525
561
|
- lib/rpush/client/redis/fcm/notification.rb
|
526
|
-
- lib/rpush/client/redis/gcm/app.rb
|
527
|
-
- lib/rpush/client/redis/gcm/notification.rb
|
528
562
|
- lib/rpush/client/redis/notification.rb
|
529
563
|
- lib/rpush/client/redis/pushy/app.rb
|
530
564
|
- lib/rpush/client/redis/pushy/notification.rb
|
@@ -540,9 +574,6 @@ files:
|
|
540
574
|
- lib/rpush/daemon.rb
|
541
575
|
- lib/rpush/daemon/adm.rb
|
542
576
|
- lib/rpush/daemon/adm/delivery.rb
|
543
|
-
- lib/rpush/daemon/apns.rb
|
544
|
-
- lib/rpush/daemon/apns/delivery.rb
|
545
|
-
- lib/rpush/daemon/apns/feedback_receiver.rb
|
546
577
|
- lib/rpush/daemon/apns2.rb
|
547
578
|
- lib/rpush/daemon/apns2/delivery.rb
|
548
579
|
- lib/rpush/daemon/apnsp8.rb
|
@@ -554,17 +585,13 @@ files:
|
|
554
585
|
- lib/rpush/daemon/delivery.rb
|
555
586
|
- lib/rpush/daemon/delivery_error.rb
|
556
587
|
- lib/rpush/daemon/dispatcher/apns_http2.rb
|
557
|
-
- lib/rpush/daemon/dispatcher/apns_tcp.rb
|
558
588
|
- lib/rpush/daemon/dispatcher/apnsp8_http2.rb
|
559
589
|
- lib/rpush/daemon/dispatcher/http.rb
|
560
|
-
- lib/rpush/daemon/dispatcher/tcp.rb
|
561
590
|
- lib/rpush/daemon/dispatcher_loop.rb
|
562
591
|
- lib/rpush/daemon/errors.rb
|
563
592
|
- lib/rpush/daemon/fcm.rb
|
564
593
|
- lib/rpush/daemon/fcm/delivery.rb
|
565
594
|
- lib/rpush/daemon/feeder.rb
|
566
|
-
- lib/rpush/daemon/gcm.rb
|
567
|
-
- lib/rpush/daemon/gcm/delivery.rb
|
568
595
|
- lib/rpush/daemon/google_credential_cache.rb
|
569
596
|
- lib/rpush/daemon/interruptible_sleep.rb
|
570
597
|
- lib/rpush/daemon/loggable.rb
|
@@ -586,7 +613,6 @@ files:
|
|
586
613
|
- lib/rpush/daemon/store/redis.rb
|
587
614
|
- lib/rpush/daemon/string_helpers.rb
|
588
615
|
- lib/rpush/daemon/synchronizer.rb
|
589
|
-
- lib/rpush/daemon/tcp_connection.rb
|
590
616
|
- lib/rpush/daemon/webpush.rb
|
591
617
|
- lib/rpush/daemon/webpush/delivery.rb
|
592
618
|
- lib/rpush/daemon/wns.rb
|
@@ -612,14 +638,10 @@ files:
|
|
612
638
|
- spec/.rubocop.yml
|
613
639
|
- spec/functional/adm_spec.rb
|
614
640
|
- spec/functional/apns2_spec.rb
|
615
|
-
- spec/functional/apns_spec.rb
|
616
641
|
- spec/functional/cli_spec.rb
|
617
642
|
- spec/functional/embed_spec.rb
|
618
643
|
- spec/functional/fcm_priority_spec.rb
|
619
644
|
- spec/functional/fcm_spec.rb
|
620
|
-
- spec/functional/gcm_priority_spec.rb
|
621
|
-
- spec/functional/gcm_spec.rb
|
622
|
-
- spec/functional/new_app_spec.rb
|
623
645
|
- spec/functional/pushy_spec.rb
|
624
646
|
- spec/functional/retry_spec.rb
|
625
647
|
- spec/functional/synchronization_spec.rb
|
@@ -634,7 +656,6 @@ files:
|
|
634
656
|
- spec/support/simplecov_helper.rb
|
635
657
|
- spec/support/simplecov_quality_formatter.rb
|
636
658
|
- spec/tmp/.gitkeep
|
637
|
-
- spec/unit/apns_feedback_spec.rb
|
638
659
|
- spec/unit/client/active_record/adm/app_spec.rb
|
639
660
|
- spec/unit/client/active_record/adm/notification_spec.rb
|
640
661
|
- spec/unit/client/active_record/apns/app_spec.rb
|
@@ -646,8 +667,6 @@ files:
|
|
646
667
|
- spec/unit/client/active_record/app_spec.rb
|
647
668
|
- spec/unit/client/active_record/fcm/app_spec.rb
|
648
669
|
- spec/unit/client/active_record/fcm/notification_spec.rb
|
649
|
-
- spec/unit/client/active_record/gcm/app_spec.rb
|
650
|
-
- spec/unit/client/active_record/gcm/notification_spec.rb
|
651
670
|
- spec/unit/client/active_record/notification_spec.rb
|
652
671
|
- spec/unit/client/active_record/pushy/app_spec.rb
|
653
672
|
- spec/unit/client/active_record/pushy/notification_spec.rb
|
@@ -670,8 +689,6 @@ files:
|
|
670
689
|
- spec/unit/client/redis/app_spec.rb
|
671
690
|
- spec/unit/client/redis/fcm/app_spec.rb
|
672
691
|
- spec/unit/client/redis/fcm/notification_spec.rb
|
673
|
-
- spec/unit/client/redis/gcm/app_spec.rb
|
674
|
-
- spec/unit/client/redis/gcm/notification_spec.rb
|
675
692
|
- spec/unit/client/redis/notification_spec.rb
|
676
693
|
- spec/unit/client/redis/pushy/app_spec.rb
|
677
694
|
- spec/unit/client/redis/pushy/notification_spec.rb
|
@@ -689,8 +706,6 @@ files:
|
|
689
706
|
- spec/unit/client/shared/app.rb
|
690
707
|
- spec/unit/client/shared/fcm/app.rb
|
691
708
|
- spec/unit/client/shared/fcm/notification.rb
|
692
|
-
- spec/unit/client/shared/gcm/app.rb
|
693
|
-
- spec/unit/client/shared/gcm/notification.rb
|
694
709
|
- spec/unit/client/shared/notification.rb
|
695
710
|
- spec/unit/client/shared/pushy/app.rb
|
696
711
|
- spec/unit/client/shared/pushy/notification.rb
|
@@ -703,19 +718,15 @@ files:
|
|
703
718
|
- spec/unit/configuration_spec.rb
|
704
719
|
- spec/unit/daemon/adm/delivery_spec.rb
|
705
720
|
- spec/unit/daemon/apns/certificate_expired_error_spec.rb
|
706
|
-
- spec/unit/daemon/apns/delivery_spec.rb
|
707
|
-
- spec/unit/daemon/apns/feedback_receiver_spec.rb
|
708
721
|
- spec/unit/daemon/apnsp8/delivery_spec.rb
|
709
722
|
- spec/unit/daemon/app_runner_spec.rb
|
710
723
|
- spec/unit/daemon/batch_spec.rb
|
711
724
|
- spec/unit/daemon/delivery_error_spec.rb
|
712
725
|
- spec/unit/daemon/delivery_spec.rb
|
713
726
|
- spec/unit/daemon/dispatcher/http_spec.rb
|
714
|
-
- spec/unit/daemon/dispatcher/tcp_spec.rb
|
715
727
|
- spec/unit/daemon/dispatcher_loop_spec.rb
|
716
728
|
- spec/unit/daemon/fcm/delivery_spec.rb
|
717
729
|
- spec/unit/daemon/feeder_spec.rb
|
718
|
-
- spec/unit/daemon/gcm/delivery_spec.rb
|
719
730
|
- spec/unit/daemon/proc_title_spec.rb
|
720
731
|
- spec/unit/daemon/pushy/delivery_spec.rb
|
721
732
|
- spec/unit/daemon/retryable_error_spec.rb
|
@@ -725,7 +736,6 @@ files:
|
|
725
736
|
- spec/unit/daemon/store/active_record/reconnectable_spec.rb
|
726
737
|
- spec/unit/daemon/store/active_record_spec.rb
|
727
738
|
- spec/unit/daemon/store/redis_spec.rb
|
728
|
-
- spec/unit/daemon/tcp_connection_spec.rb
|
729
739
|
- spec/unit/daemon/webpush/delivery_spec.rb
|
730
740
|
- spec/unit/daemon/wns/delivery_spec.rb
|
731
741
|
- spec/unit/daemon/wns/post_request_spec.rb
|
@@ -761,7 +771,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
761
771
|
requirements:
|
762
772
|
- - ">="
|
763
773
|
- !ruby/object:Gem::Version
|
764
|
-
version:
|
774
|
+
version: 3.0.0
|
765
775
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
766
776
|
requirements:
|
767
777
|
- - ">="
|
@@ -776,14 +786,10 @@ test_files:
|
|
776
786
|
- spec/.rubocop.yml
|
777
787
|
- spec/functional/adm_spec.rb
|
778
788
|
- spec/functional/apns2_spec.rb
|
779
|
-
- spec/functional/apns_spec.rb
|
780
789
|
- spec/functional/cli_spec.rb
|
781
790
|
- spec/functional/embed_spec.rb
|
782
791
|
- spec/functional/fcm_priority_spec.rb
|
783
792
|
- spec/functional/fcm_spec.rb
|
784
|
-
- spec/functional/gcm_priority_spec.rb
|
785
|
-
- spec/functional/gcm_spec.rb
|
786
|
-
- spec/functional/new_app_spec.rb
|
787
793
|
- spec/functional/pushy_spec.rb
|
788
794
|
- spec/functional/retry_spec.rb
|
789
795
|
- spec/functional/synchronization_spec.rb
|
@@ -798,7 +804,6 @@ test_files:
|
|
798
804
|
- spec/support/simplecov_helper.rb
|
799
805
|
- spec/support/simplecov_quality_formatter.rb
|
800
806
|
- spec/tmp/.gitkeep
|
801
|
-
- spec/unit/apns_feedback_spec.rb
|
802
807
|
- spec/unit/client/active_record/adm/app_spec.rb
|
803
808
|
- spec/unit/client/active_record/adm/notification_spec.rb
|
804
809
|
- spec/unit/client/active_record/apns/app_spec.rb
|
@@ -810,8 +815,6 @@ test_files:
|
|
810
815
|
- spec/unit/client/active_record/app_spec.rb
|
811
816
|
- spec/unit/client/active_record/fcm/app_spec.rb
|
812
817
|
- spec/unit/client/active_record/fcm/notification_spec.rb
|
813
|
-
- spec/unit/client/active_record/gcm/app_spec.rb
|
814
|
-
- spec/unit/client/active_record/gcm/notification_spec.rb
|
815
818
|
- spec/unit/client/active_record/notification_spec.rb
|
816
819
|
- spec/unit/client/active_record/pushy/app_spec.rb
|
817
820
|
- spec/unit/client/active_record/pushy/notification_spec.rb
|
@@ -834,8 +837,6 @@ test_files:
|
|
834
837
|
- spec/unit/client/redis/app_spec.rb
|
835
838
|
- spec/unit/client/redis/fcm/app_spec.rb
|
836
839
|
- spec/unit/client/redis/fcm/notification_spec.rb
|
837
|
-
- spec/unit/client/redis/gcm/app_spec.rb
|
838
|
-
- spec/unit/client/redis/gcm/notification_spec.rb
|
839
840
|
- spec/unit/client/redis/notification_spec.rb
|
840
841
|
- spec/unit/client/redis/pushy/app_spec.rb
|
841
842
|
- spec/unit/client/redis/pushy/notification_spec.rb
|
@@ -853,8 +854,6 @@ test_files:
|
|
853
854
|
- spec/unit/client/shared/app.rb
|
854
855
|
- spec/unit/client/shared/fcm/app.rb
|
855
856
|
- spec/unit/client/shared/fcm/notification.rb
|
856
|
-
- spec/unit/client/shared/gcm/app.rb
|
857
|
-
- spec/unit/client/shared/gcm/notification.rb
|
858
857
|
- spec/unit/client/shared/notification.rb
|
859
858
|
- spec/unit/client/shared/pushy/app.rb
|
860
859
|
- spec/unit/client/shared/pushy/notification.rb
|
@@ -867,19 +866,15 @@ test_files:
|
|
867
866
|
- spec/unit/configuration_spec.rb
|
868
867
|
- spec/unit/daemon/adm/delivery_spec.rb
|
869
868
|
- spec/unit/daemon/apns/certificate_expired_error_spec.rb
|
870
|
-
- spec/unit/daemon/apns/delivery_spec.rb
|
871
|
-
- spec/unit/daemon/apns/feedback_receiver_spec.rb
|
872
869
|
- spec/unit/daemon/apnsp8/delivery_spec.rb
|
873
870
|
- spec/unit/daemon/app_runner_spec.rb
|
874
871
|
- spec/unit/daemon/batch_spec.rb
|
875
872
|
- spec/unit/daemon/delivery_error_spec.rb
|
876
873
|
- spec/unit/daemon/delivery_spec.rb
|
877
874
|
- spec/unit/daemon/dispatcher/http_spec.rb
|
878
|
-
- spec/unit/daemon/dispatcher/tcp_spec.rb
|
879
875
|
- spec/unit/daemon/dispatcher_loop_spec.rb
|
880
876
|
- spec/unit/daemon/fcm/delivery_spec.rb
|
881
877
|
- spec/unit/daemon/feeder_spec.rb
|
882
|
-
- spec/unit/daemon/gcm/delivery_spec.rb
|
883
878
|
- spec/unit/daemon/proc_title_spec.rb
|
884
879
|
- spec/unit/daemon/pushy/delivery_spec.rb
|
885
880
|
- spec/unit/daemon/retryable_error_spec.rb
|
@@ -889,7 +884,6 @@ test_files:
|
|
889
884
|
- spec/unit/daemon/store/active_record/reconnectable_spec.rb
|
890
885
|
- spec/unit/daemon/store/active_record_spec.rb
|
891
886
|
- spec/unit/daemon/store/redis_spec.rb
|
892
|
-
- spec/unit/daemon/tcp_connection_spec.rb
|
893
887
|
- spec/unit/daemon/webpush/delivery_spec.rb
|
894
888
|
- spec/unit/daemon/wns/delivery_spec.rb
|
895
889
|
- spec/unit/daemon/wns/post_request_spec.rb
|
data/lib/rpush/apns_feedback.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
module Rpush
|
2
|
-
def self.apns_feedback
|
3
|
-
require 'rpush/daemon'
|
4
|
-
Rpush::Daemon.common_init
|
5
|
-
|
6
|
-
Rpush::Apns::App.all.each do |app|
|
7
|
-
# Redis stores every App type on the same namespace, hence the
|
8
|
-
# additional filtering
|
9
|
-
next unless app.service_name == 'apns'
|
10
|
-
next unless app.feedback_enabled
|
11
|
-
|
12
|
-
receiver = Rpush::Daemon::Apns::FeedbackReceiver.new(app)
|
13
|
-
receiver.check_for_feedback
|
14
|
-
end
|
15
|
-
|
16
|
-
nil
|
17
|
-
end
|
18
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Rpush
|
2
|
-
module Client
|
3
|
-
module ActiveModel
|
4
|
-
module Gcm
|
5
|
-
module App
|
6
|
-
def self.included(base)
|
7
|
-
base.instance_eval do
|
8
|
-
validates :auth_key, presence: true
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def service_name
|
13
|
-
'gcm'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module Rpush
|
2
|
-
module Client
|
3
|
-
module ActiveModel
|
4
|
-
module Gcm
|
5
|
-
class ExpiryCollapseKeyMutualInclusionValidator < ::ActiveModel::Validator
|
6
|
-
def validate(record)
|
7
|
-
return unless record.collapse_key && !record.expiry
|
8
|
-
record.errors.add :expiry, 'must be set when using a collapse_key'
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
module Rpush
|
2
|
-
module Client
|
3
|
-
module ActiveModel
|
4
|
-
module Gcm
|
5
|
-
module Notification
|
6
|
-
GCM_PRIORITY_HIGH = Rpush::Client::ActiveModel::Apns::Notification::APNS_PRIORITY_IMMEDIATE
|
7
|
-
GCM_PRIORITY_NORMAL = Rpush::Client::ActiveModel::Apns::Notification::APNS_PRIORITY_CONSERVE_POWER
|
8
|
-
GCM_PRIORITIES = [GCM_PRIORITY_HIGH, GCM_PRIORITY_NORMAL]
|
9
|
-
|
10
|
-
def self.included(base)
|
11
|
-
base.instance_eval do
|
12
|
-
validates :registration_ids, presence: true
|
13
|
-
validates :priority, inclusion: { in: GCM_PRIORITIES }, allow_nil: true
|
14
|
-
validates :dry_run, inclusion: { in: [true, false] }
|
15
|
-
|
16
|
-
validates_with Rpush::Client::ActiveModel::PayloadDataSizeValidator, limit: 4096
|
17
|
-
validates_with Rpush::Client::ActiveModel::RegistrationIdsCountValidator, limit: 1000
|
18
|
-
|
19
|
-
validates_with Rpush::Client::ActiveModel::Gcm::ExpiryCollapseKeyMutualInclusionValidator
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# This is a hack. The schema defines `priority` to be an integer, but GCM expects a string.
|
24
|
-
# But for users of rpush to have an API they might expect (setting priority to `high`, not 10)
|
25
|
-
# we do a little conversion here.
|
26
|
-
# I'm not happy about it, but this will have to do until I can take a further look.
|
27
|
-
def priority=(priority)
|
28
|
-
case priority
|
29
|
-
when 'high', GCM_PRIORITY_HIGH
|
30
|
-
super(GCM_PRIORITY_HIGH)
|
31
|
-
when 'normal', GCM_PRIORITY_NORMAL
|
32
|
-
super(GCM_PRIORITY_NORMAL)
|
33
|
-
else
|
34
|
-
errors.add(:priority, 'must be one of either "normal" or "high"')
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def as_json(options = nil) # rubocop:disable Metrics/PerceivedComplexity
|
39
|
-
json = {
|
40
|
-
'registration_ids' => registration_ids,
|
41
|
-
'delay_while_idle' => delay_while_idle,
|
42
|
-
'data' => data
|
43
|
-
}
|
44
|
-
json['collapse_key'] = collapse_key if collapse_key
|
45
|
-
json['content_available'] = content_available if content_available
|
46
|
-
json['mutable_content'] = mutable_content if mutable_content
|
47
|
-
json['dry_run'] = dry_run if dry_run
|
48
|
-
json['notification'] = notification if notification
|
49
|
-
json['priority'] = priority_for_notification if priority
|
50
|
-
json['time_to_live'] = expiry if expiry
|
51
|
-
json
|
52
|
-
end
|
53
|
-
|
54
|
-
def priority_for_notification
|
55
|
-
return 'high' if priority == GCM_PRIORITY_HIGH
|
56
|
-
'normal' if priority == GCM_PRIORITY_NORMAL
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|