gs2-ruby-sdk-notification 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.
- checksums.yaml +7 -0
- data/.buildpath +5 -0
- data/.gitignore +10 -0
- data/.project +17 -0
- data/Gemfile +5 -0
- data/README.md +2 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/gs2-ruby-sdk-notification.gemspec +25 -0
- data/lib/gs2-notification.rb +1 -0
- data/lib/gs2/notification/Client.rb +289 -0
- data/lib/gs2/notification/version.rb +5 -0
- metadata +98 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2f0f39fc7c3e46e816f3c47856a68b9a830c62fa
|
4
|
+
data.tar.gz: 3d6618c99625b92ee4fccdeebce661363c2fbe0a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4e4a131fdfe5a677146b9ee1c3d869b51b593e223dbce0e74774f3b5d83fd329e53387a699fa6e7e6e511c59c39e7ddcb132c1ed896bac4f0b22f04869344db6
|
7
|
+
data.tar.gz: 12b4dc496957655e35fb291326950579661157272379d5eceaa040539d629d6a2c731ab26e1d052ecf9a1adf03fffdaccaf91ac81013976a1e34cba338bc23b6
|
data/.buildpath
ADDED
data/.gitignore
ADDED
data/.project
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<projectDescription>
|
3
|
+
<name>gs2-ruby-sdk-notification</name>
|
4
|
+
<comment></comment>
|
5
|
+
<projects>
|
6
|
+
</projects>
|
7
|
+
<buildSpec>
|
8
|
+
<buildCommand>
|
9
|
+
<name>org.eclipse.dltk.core.scriptbuilder</name>
|
10
|
+
<arguments>
|
11
|
+
</arguments>
|
12
|
+
</buildCommand>
|
13
|
+
</buildSpec>
|
14
|
+
<natures>
|
15
|
+
<nature>org.eclipse.dltk.ruby.core.nature</nature>
|
16
|
+
</natures>
|
17
|
+
</projectDescription>
|
data/Gemfile
ADDED
data/README.md
ADDED
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "gs2/sdk/for/ruby/notification"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'gs2/notification/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "gs2-ruby-sdk-notification"
|
8
|
+
spec.version = Gs2::Notification::VERSION
|
9
|
+
spec.authors = ["Game Server Services, Inc."]
|
10
|
+
spec.email = ["contact@gs2.io"]
|
11
|
+
spec.licenses = "Apache-2.0"
|
12
|
+
|
13
|
+
spec.summary = %q{Game Server Services GS2-Notification Client Library}
|
14
|
+
spec.homepage = "https://gs2.io/"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = "exe"
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "gs2-ruby-sdk-core", "~> 0.0.1"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'gs2/notification/Client.rb'
|
@@ -0,0 +1,289 @@
|
|
1
|
+
require 'gs2/core/AbstractClient.rb'
|
2
|
+
|
3
|
+
module Gs2 module Notification
|
4
|
+
|
5
|
+
# GS2-Notification クライアント
|
6
|
+
#
|
7
|
+
# @author Game Server Services, Inc.
|
8
|
+
class Client < Gs2::Core::AbstractClient
|
9
|
+
|
10
|
+
@@ENDPOINT = 'notification'
|
11
|
+
|
12
|
+
# コンストラクタ
|
13
|
+
#
|
14
|
+
# @param region [String] リージョン名
|
15
|
+
# @param gs2_client_id [String] GSIクライアントID
|
16
|
+
# @param gs2_client_secret [String] GSIクライアントシークレット
|
17
|
+
def initialize(region, gs2_client_id, gs2_client_secret)
|
18
|
+
super(region, gs2_client_id, gs2_client_secret)
|
19
|
+
end
|
20
|
+
|
21
|
+
# デバッグ用。通常利用する必要はありません。
|
22
|
+
def self.ENDPOINT(v = nil)
|
23
|
+
if v
|
24
|
+
@@ENDPOINT = v
|
25
|
+
else
|
26
|
+
return @@ENDPOINT
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# 通知リストを取得
|
31
|
+
#
|
32
|
+
# @param pageToken [String] ページトークン
|
33
|
+
# @param limit [Integer] 取得件数
|
34
|
+
# @return [Array]
|
35
|
+
# * items
|
36
|
+
# [Array]
|
37
|
+
# * notificationId => 通知ID
|
38
|
+
# * ownerId => オーナーID
|
39
|
+
# * name => 通知名
|
40
|
+
# * description => 説明文
|
41
|
+
# * createAt => 作成日時
|
42
|
+
# * updateAt => 更新日時
|
43
|
+
# * nextPageToken => 次ページトークン
|
44
|
+
def describe_notification(pageToken = nil, limit = nil)
|
45
|
+
query = {}
|
46
|
+
if pageToken; query['pageToken'] = pageToken; end
|
47
|
+
if limit; query['limit'] = limit; end
|
48
|
+
return get(
|
49
|
+
'Gs2Notification',
|
50
|
+
'DescribeNotification',
|
51
|
+
@@ENDPOINT,
|
52
|
+
'/notification',
|
53
|
+
query);
|
54
|
+
end
|
55
|
+
|
56
|
+
# 通知を作成<br>
|
57
|
+
# <br>
|
58
|
+
# 通知はGS2内で発生したイベントを受け取る手段を提供します。<br>
|
59
|
+
# 例えば、GS2-Watch の監視データが一定の閾値を超えた時に通知する。といった用途に利用できます。<br>
|
60
|
+
# <br>
|
61
|
+
# GS2 のサービスの多くはクオータを買い、その範囲内でサービスを利用する形式が多く取られていますが、<br>
|
62
|
+
# 現在の消費クオータが GS2-Watch で取れますので、クオータの消費量が予約量の80%を超えたら通知をだす。というような使い方ができます。<br>
|
63
|
+
#
|
64
|
+
# @param request [Array]
|
65
|
+
# * name => 通知名
|
66
|
+
# * description => 説明文
|
67
|
+
# @return [Array]
|
68
|
+
# * item
|
69
|
+
# * notificationId => 通知ID
|
70
|
+
# * ownerId => オーナーID
|
71
|
+
# * name => 通知名
|
72
|
+
# * description => 説明文
|
73
|
+
# * createAt => 作成日時
|
74
|
+
# * updateAt => 更新日時
|
75
|
+
def create_notification(request)
|
76
|
+
if not request; raise ArgumentError.new(); end
|
77
|
+
body = {}
|
78
|
+
if request.has_key?('name'); body['name'] = request['name']; end
|
79
|
+
if request.has_key?('description'); body['description'] = request['description']; end
|
80
|
+
query = {}
|
81
|
+
return post(
|
82
|
+
'Gs2Notification',
|
83
|
+
'CreateNotification',
|
84
|
+
@@ENDPOINT,
|
85
|
+
'/notification',
|
86
|
+
body,
|
87
|
+
query);
|
88
|
+
end
|
89
|
+
|
90
|
+
# 通知を取得
|
91
|
+
#
|
92
|
+
# @param request [Array]
|
93
|
+
# * notificationName => 通知名
|
94
|
+
# @return [Array]
|
95
|
+
# * item
|
96
|
+
# * notificationId => 通知ID
|
97
|
+
# * ownerId => オーナーID
|
98
|
+
# * name => 通知名
|
99
|
+
# * description => 説明文
|
100
|
+
# * createAt => 作成日時
|
101
|
+
# * updateAt => 更新日時
|
102
|
+
def get_notification(request)
|
103
|
+
if not request; raise ArgumentError.new(); end
|
104
|
+
if not request.has_key?('notificationName'); raise ArgumentError.new(); end
|
105
|
+
if not request['notificationName']; raise ArgumentError.new(); end
|
106
|
+
query = {}
|
107
|
+
return get(
|
108
|
+
'Gs2Notification',
|
109
|
+
'GetNotification',
|
110
|
+
@@ENDPOINT,
|
111
|
+
'/notification/' + request['notificationName'],
|
112
|
+
query);
|
113
|
+
end
|
114
|
+
|
115
|
+
# 通知を更新
|
116
|
+
#
|
117
|
+
# @param request [Array]
|
118
|
+
# * notificationName => 通知名
|
119
|
+
# * description => 説明文
|
120
|
+
# @return [Array]
|
121
|
+
# * item
|
122
|
+
# * notificationId => 通知ID
|
123
|
+
# * ownerId => オーナーID
|
124
|
+
# * name => 通知名
|
125
|
+
# * description => 説明文
|
126
|
+
# * createAt => 作成日時
|
127
|
+
# * updateAt => 更新日時
|
128
|
+
def update_notification(request)
|
129
|
+
if not request; raise ArgumentError.new(); end
|
130
|
+
if not request.has_key?('notificationName'); raise ArgumentError.new(); end
|
131
|
+
if not request['notificationName']; raise ArgumentError.new(); end
|
132
|
+
body = {}
|
133
|
+
if request.has_key?('description'); body['description'] = request['description']; end
|
134
|
+
query = {}
|
135
|
+
return put(
|
136
|
+
'Gs2Notification',
|
137
|
+
'UpdateNotification',
|
138
|
+
@@ENDPOINT,
|
139
|
+
'/notification/' + request['notificationName'],
|
140
|
+
body,
|
141
|
+
query);
|
142
|
+
end
|
143
|
+
|
144
|
+
# 通知を削除
|
145
|
+
#
|
146
|
+
# @param request [Array]
|
147
|
+
# * notificationName => 通知名
|
148
|
+
def delete_notification(request)
|
149
|
+
if not request; raise ArgumentError.new(); end
|
150
|
+
if not request.has_key?('notificationName'); raise ArgumentError.new(); end
|
151
|
+
if not request['notificationName']; raise ArgumentError.new(); end
|
152
|
+
query = {}
|
153
|
+
return delete(
|
154
|
+
'Gs2Notification',
|
155
|
+
'DeleteNotification',
|
156
|
+
@@ENDPOINT,
|
157
|
+
'/notification/' + request['notificationName'],
|
158
|
+
query);
|
159
|
+
end
|
160
|
+
|
161
|
+
# 通知先リストを取得
|
162
|
+
#
|
163
|
+
# @param request [Array]
|
164
|
+
# * notificationName => 通知名
|
165
|
+
# @param pageToken [String] ページトークン
|
166
|
+
# @param limit [Integer] 取得件数
|
167
|
+
# @return [Array]
|
168
|
+
# * items
|
169
|
+
# [Array]
|
170
|
+
# * subscribeId => 通知先ID
|
171
|
+
# * notificationId => 通知ID
|
172
|
+
# * type => 通知プロトコル
|
173
|
+
# * endpoint => 通知先
|
174
|
+
# * createAt => 作成日時
|
175
|
+
# * nextPageToken => 次ページトークン
|
176
|
+
def describe_subscribe(request, pageToken = nil, limit = nil)
|
177
|
+
if not request; raise ArgumentError.new(); end
|
178
|
+
if not request.has_key?('notificationName'); raise ArgumentError.new(); end
|
179
|
+
if not request['notificationName']; raise ArgumentError.new(); end
|
180
|
+
query = {}
|
181
|
+
if pageToken; query['pageToken'] = pageToken; end
|
182
|
+
if limit; query['limit'] = limit; end
|
183
|
+
return get(
|
184
|
+
'Gs2Notification',
|
185
|
+
'DescribeSubscribe',
|
186
|
+
@@ENDPOINT,
|
187
|
+
'/notification/' + request['notificationName'] + '/subscribe',
|
188
|
+
query);
|
189
|
+
end
|
190
|
+
|
191
|
+
# 通知先を作成<br>
|
192
|
+
# <br>
|
193
|
+
# E-Mail, HTTP/HTTPS 通信を指定して通知先を登録できます。<br>
|
194
|
+
# 通知先は1つの通知に対して複数登録することもできます。<br>
|
195
|
+
# <br>
|
196
|
+
# そのため、メールとSlackに通知する。といった利用ができます。<br>
|
197
|
+
# <br>
|
198
|
+
# type に指定できるパラメータ<br>
|
199
|
+
#
|
200
|
+
# * email
|
201
|
+
# * http/https
|
202
|
+
#
|
203
|
+
# <br>
|
204
|
+
# endpoint には type に指定したプロトコルによって指定する内容が変わります。<br>
|
205
|
+
# email を選択した場合には メールアドレスを、<br>
|
206
|
+
# http/https を選択した場合には URL を指定してください。<br>
|
207
|
+
# <br>
|
208
|
+
# http/https を選択した場合には登録時に疎通確認を行います。<br>
|
209
|
+
# 指定したURLでPOSTリクエストを受け付けられる状態で登録してください。<br>
|
210
|
+
# 疎通確認の通信は通常の通知とは異なり、body パラメータがからの通信が発生します。ご注意ください。<br>
|
211
|
+
#
|
212
|
+
# @param request [Array]
|
213
|
+
# * notificationName => 通知名
|
214
|
+
# * name => 通知先名
|
215
|
+
# * type => 通知プロトコル
|
216
|
+
# * endpoint => 通知先
|
217
|
+
# @return [Array]
|
218
|
+
# * item
|
219
|
+
# * subscribeId => 通知先ID
|
220
|
+
# * notificationId => 通知ID
|
221
|
+
# * type => 通知プロトコル
|
222
|
+
# * endpoint => 通知先
|
223
|
+
# * createAt => 作成日時
|
224
|
+
def create_subscribe(request)
|
225
|
+
if not request; raise ArgumentError.new(); end
|
226
|
+
if not request.has_key?('notificationName'); raise ArgumentError.new(); end
|
227
|
+
if not request['notificationName']; raise ArgumentError.new(); end
|
228
|
+
body = {}
|
229
|
+
if request.has_key?('name'); body['name'] = request['name']; end
|
230
|
+
if request.has_key?('type'); body['type'] = request['type']; end
|
231
|
+
if request.has_key?('endpoint'); body['endpoint'] = request['endpoint']; end
|
232
|
+
query = {}
|
233
|
+
return post(
|
234
|
+
'Gs2Notification',
|
235
|
+
'CreateSubscribe',
|
236
|
+
@@ENDPOINT,
|
237
|
+
'/notification/' + request['notificationName'] + '/subscribe',
|
238
|
+
body,
|
239
|
+
query);
|
240
|
+
end
|
241
|
+
|
242
|
+
# 通知先を取得
|
243
|
+
#
|
244
|
+
# @param request [Array]
|
245
|
+
# * notificationName => 通知名
|
246
|
+
# * subscribeId => 通知先ID
|
247
|
+
# @return [Array]
|
248
|
+
# * item
|
249
|
+
# * subscribeId => 通知先ID
|
250
|
+
# * notificationId => 通知ID
|
251
|
+
# * type => 通知プロトコル
|
252
|
+
# * endpoint => 通知先
|
253
|
+
# * createAt => 作成日時
|
254
|
+
def get_subscribe(request)
|
255
|
+
if not request; raise ArgumentError.new(); end
|
256
|
+
if not request.has_key?('notificationName'); raise ArgumentError.new(); end
|
257
|
+
if not request['notificationName']; raise ArgumentError.new(); end
|
258
|
+
if not request.has_key?('subscribeId'); raise ArgumentError.new(); end
|
259
|
+
if not request['subscribeId']; raise ArgumentError.new(); end
|
260
|
+
query = {}
|
261
|
+
return get(
|
262
|
+
'Gs2Notification',
|
263
|
+
'GetSubscribe',
|
264
|
+
@@ENDPOINT,
|
265
|
+
'/notification/' + request['notificationName'] + '/subscribe/' + request['subscribeId'],
|
266
|
+
query);
|
267
|
+
end
|
268
|
+
|
269
|
+
# 通知先を削除
|
270
|
+
#
|
271
|
+
# @param request [Array]
|
272
|
+
# * notificationName => 通知名
|
273
|
+
# * subscribeId => 通知先ID
|
274
|
+
def delete_subscribe(request)
|
275
|
+
if not request; raise ArgumentError.new(); end
|
276
|
+
if not request.has_key?('notificationName'); raise ArgumentError.new(); end
|
277
|
+
if not request['notificationName']; raise ArgumentError.new(); end
|
278
|
+
if not request.has_key?('subscribeId'); raise ArgumentError.new(); end
|
279
|
+
if not request['subscribeId']; raise ArgumentError.new(); end
|
280
|
+
query = {}
|
281
|
+
return delete(
|
282
|
+
'Gs2Notification',
|
283
|
+
'DeleteSubscribe',
|
284
|
+
@@ENDPOINT,
|
285
|
+
'/notification/' + request['notificationName'] + '/subscribe/' + request['subscribeId'],
|
286
|
+
query);
|
287
|
+
end
|
288
|
+
end
|
289
|
+
end end
|
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gs2-ruby-sdk-notification
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Game Server Services, Inc.
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gs2-ruby-sdk-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.12'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- contact@gs2.io
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".buildpath"
|
63
|
+
- ".gitignore"
|
64
|
+
- ".project"
|
65
|
+
- Gemfile
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- bin/console
|
69
|
+
- bin/setup
|
70
|
+
- gs2-ruby-sdk-notification.gemspec
|
71
|
+
- lib/gs2-notification.rb
|
72
|
+
- lib/gs2/notification/Client.rb
|
73
|
+
- lib/gs2/notification/version.rb
|
74
|
+
homepage: https://gs2.io/
|
75
|
+
licenses:
|
76
|
+
- Apache-2.0
|
77
|
+
metadata: {}
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
requirements: []
|
93
|
+
rubyforge_project:
|
94
|
+
rubygems_version: 2.5.1
|
95
|
+
signing_key:
|
96
|
+
specification_version: 4
|
97
|
+
summary: Game Server Services GS2-Notification Client Library
|
98
|
+
test_files: []
|