google-api-fcm 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b18c9a80aa74c0d84ef9122db088c44376997f8
4
- data.tar.gz: 928de98bc4e05954c0f8f677a6565e90dc13a07a
3
+ metadata.gz: 9c41545a43261ed60e68c85cffcc631e272acc40
4
+ data.tar.gz: 0a088f1d1ca1866c3277e56ce4603e4f7edc22ce
5
5
  SHA512:
6
- metadata.gz: daebfd873171266fefdddfae7f6f8fccae129f3cc90ae8543c2dddb464235010df6e5fce305e9ff87e4d619a01d989fb2dfbc5a7399d9e49f781fc822aa61e6f
7
- data.tar.gz: 465dee724fb85f6b6d4a4f62ecbd30953b27385ffd7a0e24b28ec042457d3854b93480c74cde0e0a052224abe74f3ad9bfc21c8a528a3fe0cf8ee0deebe119bd
6
+ metadata.gz: f107b12f24ab8578cf31cc06e84d98839e54807d9e3dcead3033373d2bf6cf032c10ff98a19fd14e06bf097fd61851cef63e11ef82e5a34a9a218994fd862eea
7
+ data.tar.gz: 5127a792147c8336861365b1b3127737e6a7ebbd974ad0c87f8cd5bb3b7a3ca960b7d16827b5558a4bce949ac2858d284b94ca48cd9d0a11e15238849d32524e
@@ -1,30 +1,40 @@
1
1
  module Google
2
2
  module Apis
3
3
  module Messages
4
-
5
4
  class Message
6
5
  include Google::Apis::Core::Hashable
7
6
 
8
7
  attr_accessor :message_object
9
8
 
10
9
  def initialize(**args)
11
- build_keys = %i(topic title body)
10
+ update!(**args)
11
+ end
12
12
 
13
- if (build_keys - args.keys).empty?
14
- initialize_build(**args)
15
- else
16
- update!(**args)
17
- end
13
+ def initialize_build(**args)
14
+ notification = Notification.new(
15
+ title: args[:notification][:title],
16
+ body: args[:notification][:body]
17
+ )
18
18
 
19
- end
19
+ message_object_args = {
20
+ topic: args[:topic],
21
+ notification: notification,
22
+ data: args[:payload]
23
+ }
24
+
25
+ if args.key?(:webpush) && args[:webpush][:icon]
26
+ message_object_args[:webpush] = Webpush.new(args[:webpush])
27
+ end
20
28
 
21
- def initialize_build(topic:, title:, body:, payload: nil)
22
- notification = Notification.new(title: title, body: body)
23
- @message_object = MessageObject.new(topic: topic, notification: notification, data: payload)
29
+ @message_object = MessageObject.new(message_object_args)
24
30
  end
25
31
 
26
32
  def update!(**args)
27
- @message_object = args[:message_object] if args.key?(:message_object)
33
+ if args.key?(:message_object)
34
+ @message_object = args[:message_object]
35
+ else
36
+ initialize_build(**args)
37
+ end
28
38
  end
29
39
  end
30
40
 
@@ -34,6 +44,7 @@ module Google
34
44
  attr_accessor :topic
35
45
  attr_accessor :notification
36
46
  attr_accessor :data
47
+ attr_accessor :webpush
37
48
 
38
49
  def initialize(**args)
39
50
  update!(**args)
@@ -44,13 +55,9 @@ module Google
44
55
  @topic = args[:topic] if args.key?(:topic)
45
56
  @notification = args[:notification] if args.key?(:notification)
46
57
  if args.key?(:data) && args[:data].is_a?(Hash)
47
- data = {}
48
- args[:data].each do |key, value|
49
- data[key.to_s] = value.to_s
50
- end
51
-
52
- @data = data
58
+ @data = { 'payload' => JSON.dump(args[:data]) }
53
59
  end
60
+ @webpush = args[:webpush] if args.key?(:webpush)
54
61
  end
55
62
  end
56
63
 
@@ -70,6 +77,36 @@ module Google
70
77
  @body = args[:body] if args.key?(:body)
71
78
  end
72
79
  end
80
+
81
+ class Webpush
82
+ include Google::Apis::Core::Hashable
83
+
84
+ attr_accessor :headers
85
+ attr_accessor :notification
86
+
87
+ def initialize(**args)
88
+ update!(**args)
89
+ end
90
+
91
+ def update!(**args)
92
+ @headers = args[:headers] if args.key?(:headers)
93
+ @notification = WebNotification.new(icon: args[:icon])
94
+ end
95
+ end
96
+
97
+ class WebNotification
98
+ include Google::Apis::Core::Hashable
99
+
100
+ attr_accessor :icon
101
+
102
+ def initialize(**args)
103
+ update!(**args)
104
+ end
105
+
106
+ def update!(**args)
107
+ @icon = args[:icon] if args.key?(:icon)
108
+ end
109
+ end
73
110
  end
74
111
  end
75
112
  end
@@ -16,12 +16,22 @@ module Google
16
16
  include Google::Apis::Core::JsonObjectSupport
17
17
  end
18
18
 
19
+ class Webpush
20
+ class Representation < Google::Apis::Core::JsonRepresentation; end
21
+ include Google::Apis::Core::JsonObjectSupport
22
+ end
19
23
 
24
+ class WebNotification
25
+ class Representation < Google::Apis::Core::JsonRepresentation; end
26
+ include Google::Apis::Core::JsonObjectSupport
27
+ end
20
28
 
21
29
  class Message
22
30
  # @private
23
31
  class Representation < Google::Apis::Core::JsonRepresentation
24
- property :message_object, as: 'message', class: Google::Apis::Messages::MessageObject, decorator: Google::Apis::Messages::MessageObject::Representation
32
+ property :message_object, as: 'message',
33
+ class: Google::Apis::Messages::MessageObject,
34
+ decorator: Google::Apis::Messages::MessageObject::Representation
25
35
  end
26
36
  end
27
37
 
@@ -29,8 +39,13 @@ module Google
29
39
  # @private
30
40
  class Representation < Google::Apis::Core::JsonRepresentation
31
41
  property :topic, as: 'topic'
32
- property :notification, as: 'notification', class: Google::Apis::Messages::Notification, decorator: Google::Apis::Messages::Notification::Representation
33
42
  property :data, as: 'data'
43
+ property :notification, as: 'notification',
44
+ class: Google::Apis::Messages::Notification,
45
+ decorator: Google::Apis::Messages::Notification::Representation
46
+ property :webpush, as: 'webpush',
47
+ class: Google::Apis::Messages::Webpush,
48
+ decorator: Google::Apis::Messages::Webpush::Representation
34
49
  end
35
50
  end
36
51
 
@@ -40,6 +55,21 @@ module Google
40
55
  property :body, as: 'body'
41
56
  end
42
57
  end
58
+
59
+ class Webpush
60
+ class Representation < Google::Apis::Core::JsonRepresentation
61
+ property :headers, as: 'headers'
62
+ property :notification, as: 'notification',
63
+ class: Google::Apis::Messages::WebNotification,
64
+ decorator: Google::Apis::Messages::WebNotification::Representation
65
+ end
66
+ end
67
+
68
+ class WebNotification
69
+ class Representation < Google::Apis::Core::JsonRepresentation
70
+ property :icon, as: 'icon'
71
+ end
72
+ end
43
73
  end
44
74
  end
45
75
  end
@@ -27,8 +27,6 @@ module Google
27
27
  command = make_simple_command(:post, 'messages:send', options)
28
28
  command.request_representation = Google::Apis::Messages::Message::Representation
29
29
  command.request_object = message
30
- command.response_representation = Google::Apis::Messages::Message::Representation
31
- command.response_class = Google::Apis::Messages::Message
32
30
 
33
31
  execute_or_queue_command(command, &block)
34
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-api-fcm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Krigouzov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-21 00:00:00.000000000 Z
11
+ date: 2017-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-api-client
@@ -45,7 +45,7 @@ require_paths:
45
45
  - lib
46
46
  required_ruby_version: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - "~>"
48
+ - - ">="
49
49
  - !ruby/object:Gem::Version
50
50
  version: '2.0'
51
51
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  version: '0'
56
56
  requirements: []
57
57
  rubyforge_project:
58
- rubygems_version: 2.6.11
58
+ rubygems_version: 2.5.2
59
59
  signing_key:
60
60
  specification_version: 4
61
61
  summary: Client for accessing Firebase Cloud Messaging APIs