google-api-fcm 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 76a314583edbd705b27869dc5b6439e79317075d
4
+ data.tar.gz: ff8a6b107f3c603353f0b8722f0a1a8303446211
5
+ SHA512:
6
+ metadata.gz: '02958cf1e129570176d2159bc7cbf8bdd74927bfdf8b9974362e0fc0b3432fb0fbfce5a6f194f9d5120e3ae7cc5a53d5a3e073ded5bd2c52bf9f1e956f8b7c44'
7
+ data.tar.gz: 015ac774df70696bb6b5884eecd2a8a1f6c9bd3817848aac045fba496f373bbb98961b5121b0f87c8d89f20933b122afcd8f09589ae5216ee87a5fd4fba4a149
@@ -0,0 +1,17 @@
1
+ require 'google/apis/messages/service'
2
+ require 'google/apis/messages/representations'
3
+ require 'google/apis/messages/classes'
4
+
5
+ module Google
6
+ module Apis
7
+ # Firebase Cloud Messaging
8
+ #
9
+ # @see https://firebase.google.com/docs/cloud-messaging/
10
+ module Messages
11
+ VERSION = 'V1'
12
+ REVISION = '20171130'
13
+
14
+ AUTH_MESSAGES = 'https://www.googleapis.com/auth/firebase.messaging'
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,66 @@
1
+ module Google
2
+ module Apis
3
+ module Messages
4
+
5
+ class Message
6
+ include Google::Apis::Core::Hashable
7
+
8
+ attr_accessor :message_object
9
+
10
+ def initialize(**args)
11
+ build_keys = %i(topic title body)
12
+
13
+ if (build_keys - args.keys).empty?
14
+ initialize_build(**args)
15
+ else
16
+ update!(**args)
17
+ end
18
+
19
+ end
20
+
21
+ def initialize_build(topic:, title:, body:)
22
+ notification = Notification.new(title: title, body: body)
23
+ @message_object = MessageObject.new(topic: topic, notification: notification)
24
+ end
25
+
26
+ def update!(**args)
27
+ @message_object = args[:message_object] if args.key?(:message_object)
28
+ end
29
+ end
30
+
31
+ class MessageObject
32
+ include Google::Apis::Core::Hashable
33
+
34
+ attr_accessor :topic
35
+ attr_accessor :notification
36
+
37
+ def initialize(**args)
38
+ update!(**args)
39
+ end
40
+
41
+ # Update properties of this object
42
+ def update!(**args)
43
+ @topic = args[:topic] if args.key?(:topic)
44
+ @notification = args[:notification] if args.key?(:notification)
45
+ end
46
+ end
47
+
48
+ class Notification
49
+ include Google::Apis::Core::Hashable
50
+
51
+ attr_accessor :title
52
+ attr_accessor :body
53
+
54
+ def initialize(**args)
55
+ update!(**args)
56
+ end
57
+
58
+ # Update properties of this object
59
+ def update!(**args)
60
+ @title = args[:title] if args.key?(:title)
61
+ @body = args[:body] if args.key?(:body)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,44 @@
1
+ module Google
2
+ module Apis
3
+ module Messages
4
+ class Message
5
+ class Representation < Google::Apis::Core::JsonRepresentation; end
6
+ include Google::Apis::Core::JsonObjectSupport
7
+ end
8
+
9
+ class MessageObject
10
+ class Representation < Google::Apis::Core::JsonRepresentation; end
11
+ include Google::Apis::Core::JsonObjectSupport
12
+ end
13
+
14
+ class Notification
15
+ class Representation < Google::Apis::Core::JsonRepresentation; end
16
+ include Google::Apis::Core::JsonObjectSupport
17
+ end
18
+
19
+
20
+
21
+ class Message
22
+ # @private
23
+ class Representation < Google::Apis::Core::JsonRepresentation
24
+ property :message_object, as: 'message', class: Google::Apis::Messages::MessageObject, decorator: Google::Apis::Messages::MessageObject::Representation
25
+ end
26
+ end
27
+
28
+ class MessageObject
29
+ # @private
30
+ class Representation < Google::Apis::Core::JsonRepresentation
31
+ property :topic, as: 'topic'
32
+ property :notification, as: 'notification', class: Google::Apis::Messages::Notification, decorator: Google::Apis::Messages::Notification::Representation
33
+ end
34
+ end
35
+
36
+ class Notification
37
+ class Representation < Google::Apis::Core::JsonRepresentation
38
+ property :title, as: 'title'
39
+ property :body, as: 'body'
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ require 'google/apis/core/base_service'
2
+ require 'google/apis/core/json_representation'
3
+ require 'google/apis/core/hashable'
4
+ require 'google/apis/errors'
5
+
6
+ module Google
7
+ module Apis
8
+ module Messages
9
+ class MessagesService < Google::Apis::Core::BaseService
10
+
11
+ # @return [String]
12
+ # Your project ID from Google Firebase Console https://console.firebase.google.com/
13
+ attr_accessor :project_id
14
+
15
+ # @param project_id: [String]
16
+ def initialize(project_id:)
17
+ @project_id = project_id
18
+
19
+ super('https://fcm.googleapis.com/', 'v1/projects/{projectId}/')
20
+ end
21
+
22
+ # Notify topic subscribers with message
23
+ # @see https://firebase.google.com/docs/cloud-messaging/send-message
24
+ #
25
+ # @param message [Google::Apis::Messages::Message]
26
+ def notify_topic(message, options: nil, &block)
27
+ command = make_simple_command(:post, 'messages:send', options)
28
+ command.request_representation = Google::Apis::Messages::Message::Representation
29
+ command.request_object = message
30
+ command.response_representation = Google::Apis::Messages::Message::Representation
31
+ command.response_class = Google::Apis::Messages::Message
32
+
33
+ execute_or_queue_command(command, &block)
34
+ end
35
+
36
+ protected
37
+
38
+ def apply_command_defaults(command)
39
+ command.params['projectId'] = project_id
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: google-api-fcm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ilya Krigouzov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-12-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: google-api-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.17'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.17'
27
+ description:
28
+ email:
29
+ - webmaster@oniksfly.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/google/apis/messages.rb
35
+ - lib/google/apis/messages/classes.rb
36
+ - lib/google/apis/messages/representations.rb
37
+ - lib/google/apis/messages/service.rb
38
+ homepage: https://github.com/oniksfly/google-api-fcm
39
+ licenses:
40
+ - Apache-2.0
41
+ metadata: {}
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '2.0'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubyforge_project:
58
+ rubygems_version: 2.6.11
59
+ signing_key:
60
+ specification_version: 4
61
+ summary: Client for accessing Firebase Cloud Messaging APIs
62
+ test_files: []