one_signal 1.0.0 → 1.2.2
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 +5 -5
- data/.github/workflows/ci.yml +24 -0
- data/.github/workflows/gem-push.yml +30 -0
- data/CHANGELOG.txt +17 -1
- data/LICENSE +158 -668
- data/README.md +32 -10
- data/bin/console +18 -0
- data/bin/setup +18 -0
- data/lib/one_signal/app.rb +16 -14
- data/lib/one_signal/notification.rb +33 -18
- data/lib/one_signal/one_signal.rb +32 -20
- data/lib/one_signal/player.rb +52 -17
- data/lib/one_signal/version.rb +1 -1
- data/one_signal.gemspec +2 -2
- data/test/app_test.rb +47 -6
- data/test/helper.rb +1 -1
- data/test/notification_test.rb +64 -8
- data/test/one_signal_test.rb +17 -14
- data/test/player_test.rb +116 -11
- metadata +10 -8
- data/.travis.yml +0 -5
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
# OneSignal Ruby bindings
|
1
|
+
# OneSignal Ruby bindings
|
2
2
|
|
3
|
-
This gem provides a simple SDK to access the [OneSignal API](https://documentation.onesignal.com/
|
3
|
+
This gem provides a simple SDK to access the [OneSignal API](https://documentation.onesignal.com/reference).
|
4
|
+
|
5
|
+
Also check my [onesignal-go](https://github.com/tbalthazar/onesignal-go) library.
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
@@ -10,23 +12,26 @@ gem install one_signal
|
|
10
12
|
|
11
13
|
## Development
|
12
14
|
|
15
|
+
Run `bin/setup` to install dependencies and set your API keys.
|
16
|
+
|
13
17
|
Run the tests
|
14
18
|
|
15
19
|
```
|
16
20
|
bundle exec rake
|
17
21
|
```
|
18
22
|
|
23
|
+
You can also run `bin/console` for an interactive prompt that will allow you to experiment with authenticated library methods.
|
24
|
+
|
19
25
|
## Basic usage
|
20
26
|
|
21
|
-
See basic examples in [example.rb](/example.rb).
|
27
|
+
See some basic examples in [example.rb](/example.rb).
|
22
28
|
To run it:
|
23
|
-
-
|
24
|
-
-
|
25
|
-
- run `ruby example.rb`
|
29
|
+
- run `bin/setup` to set your API keys
|
30
|
+
- then run `ruby example.rb`
|
26
31
|
|
27
32
|
## Documentation
|
28
33
|
|
29
|
-
Specify your User Auth key to deal with Apps
|
34
|
+
Specify your User Auth key to deal with Apps:
|
30
35
|
|
31
36
|
```ruby
|
32
37
|
OneSignal::OneSignal.user_auth_key = YOUR_USER_AUTH_KEY
|
@@ -39,7 +44,23 @@ OneSignal::OneSignal.api_key = YOUR_API_KEY
|
|
39
44
|
```
|
40
45
|
|
41
46
|
Then call the following methods on the `App`, `Player` and `Notification` classes.
|
42
|
-
The `params` argument in those methods is a ruby hash and the accepted/required keys for this hash are documented in the [OneSignal API documentation](https://documentation.onesignal.com/
|
47
|
+
The `params` argument in those methods is a ruby hash and the accepted/required keys for this hash are documented in the [OneSignal API documentation](https://documentation.onesignal.com/reference)
|
48
|
+
|
49
|
+
Each method also accepts an optional `opts` hash that allows you to specify the `user_auth_key`/`api_key` on a per method basis. It allows a ruby app to talk to several different OneSignal apps:
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
app_1_api_key = "fake api key 1"
|
53
|
+
app_2_api_key = "fake api key 2"
|
54
|
+
|
55
|
+
# by default, method calls will use app_1_api_key
|
56
|
+
OneSignal::OneSignal.api_key = app_1_api_key
|
57
|
+
|
58
|
+
# get player with id "123" in app_1
|
59
|
+
OneSignal::Player.get(id: "123")
|
60
|
+
|
61
|
+
# get player with id "456" in app_2
|
62
|
+
OneSignal::Player.get(id: "123", opts: {auth_key: app_2_api_key})
|
63
|
+
```
|
43
64
|
|
44
65
|
The return value of each method is a `Net::HTTPResponse`.
|
45
66
|
|
@@ -56,13 +77,14 @@ The return value of each method is a `Net::HTTPResponse`.
|
|
56
77
|
|
57
78
|
```ruby
|
58
79
|
- OneSignal::Player.all(params:)
|
59
|
-
- OneSignal::Player.csv_export(
|
80
|
+
- OneSignal::Player.csv_export(params:)
|
60
81
|
- OneSignal::Player.get(id:)
|
61
82
|
- OneSignal::Player.create(params:)
|
62
83
|
- OneSignal::Player.create_session(id:, params:)
|
63
84
|
- OneSignal::Player.create_purchase(id:, params:)
|
64
85
|
- OneSignal::Player.create_focus(id:, params:)
|
65
86
|
- OneSignal::Player.update(id:, params:)
|
87
|
+
- OneSignal::Player.delete(id:, params:)
|
66
88
|
```
|
67
89
|
|
68
90
|
### Notifications
|
@@ -85,4 +107,4 @@ They are [listed here](https://github.com/tbalthazar/onesignal-ruby/graphs/contr
|
|
85
107
|
|
86
108
|
## License
|
87
109
|
|
88
|
-
Please see [LICENSE](/LICENSE) for licensing details.
|
110
|
+
Please see [LICENSE](/LICENSE) for licensing details.
|
data/bin/console
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "dotenv/load"
|
5
|
+
require "one_signal"
|
6
|
+
|
7
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
+
# with your gem easier. You can also use a different console, if you like.
|
9
|
+
|
10
|
+
OneSignal::OneSignal.user_auth_key = ENV['USER_AUTH_KEY']
|
11
|
+
OneSignal::OneSignal.api_key = ENV['API_KEY']
|
12
|
+
|
13
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
14
|
+
# require "pry"
|
15
|
+
# Pry.start
|
16
|
+
|
17
|
+
require "irb"
|
18
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -euo pipefail
|
3
|
+
IFS=$'\n\t'
|
4
|
+
|
5
|
+
bundle install
|
6
|
+
|
7
|
+
echo "Enter your OneSignal credentials."
|
8
|
+
echo "For dealing with Apps, you'll need a user auth key."
|
9
|
+
read -p 'User Auth Key: ' user_auth_key
|
10
|
+
echo "For dealing with Players and Notifications, you'll need an API key."
|
11
|
+
read -p 'API Key: ' api_key
|
12
|
+
|
13
|
+
cp .env.example .env
|
14
|
+
|
15
|
+
sed -i '' -e "s/YOUR_USER_AUTH_KEY_HERE/$user_auth_key/g" .env
|
16
|
+
sed -i '' -e "s/YOUR_API_KEY_HERE/$api_key/g" .env
|
17
|
+
|
18
|
+
echo "Done."
|
data/lib/one_signal/app.rb
CHANGED
@@ -2,12 +2,14 @@ module OneSignal
|
|
2
2
|
|
3
3
|
class App < OneSignal
|
4
4
|
|
5
|
-
def self.all(params: {})
|
5
|
+
def self.all(params: {}, opts: {})
|
6
|
+
opts[:auth_key] ||= @@user_auth_key
|
7
|
+
|
6
8
|
uri_string = @@base_uri
|
7
9
|
uri_string += "/apps"
|
8
10
|
uri = URI.parse(uri_string)
|
9
11
|
|
10
|
-
response = send_get_request(uri: uri, params: params)
|
12
|
+
response = send_get_request(uri: uri, params: params, opts: opts)
|
11
13
|
|
12
14
|
ensure_http_status(response: response,
|
13
15
|
status: '200',
|
@@ -18,13 +20,15 @@ module OneSignal
|
|
18
20
|
return response
|
19
21
|
end
|
20
22
|
|
21
|
-
def self.get(id:)
|
23
|
+
def self.get(id: "", opts: {})
|
24
|
+
opts[:auth_key] ||= @@user_auth_key
|
25
|
+
|
22
26
|
uri_string = @@base_uri
|
23
27
|
uri_string += "/apps"
|
24
28
|
uri_string += "/#{id}"
|
25
29
|
uri = URI.parse(uri_string)
|
26
30
|
|
27
|
-
response = send_get_request(uri: uri, params: nil)
|
31
|
+
response = send_get_request(uri: uri, params: nil, opts: opts)
|
28
32
|
|
29
33
|
ensure_http_status(response: response,
|
30
34
|
status: '200',
|
@@ -35,12 +39,14 @@ module OneSignal
|
|
35
39
|
return response
|
36
40
|
end
|
37
41
|
|
38
|
-
def self.create(params: {})
|
42
|
+
def self.create(params: {}, opts: {})
|
43
|
+
opts[:auth_key] ||= @@user_auth_key
|
44
|
+
|
39
45
|
uri_string = @@base_uri
|
40
46
|
uri_string += "/apps"
|
41
47
|
uri = URI.parse(uri_string)
|
42
48
|
|
43
|
-
response = send_post_request(uri: uri, body: params)
|
49
|
+
response = send_post_request(uri: uri, body: params, opts: opts)
|
44
50
|
|
45
51
|
ensure_http_status(response: response,
|
46
52
|
status: '200',
|
@@ -51,13 +57,15 @@ module OneSignal
|
|
51
57
|
return response
|
52
58
|
end
|
53
59
|
|
54
|
-
def self.update(id
|
60
|
+
def self.update(id: "", params: {}, opts: {})
|
61
|
+
opts[:auth_key] ||= @@user_auth_key
|
62
|
+
|
55
63
|
uri_string = @@base_uri
|
56
64
|
uri_string += "/apps"
|
57
65
|
uri_string += "/#{id}"
|
58
66
|
uri = URI.parse(uri_string)
|
59
67
|
|
60
|
-
response = send_put_request(uri: uri, body: params)
|
68
|
+
response = send_put_request(uri: uri, body: params, opts: opts)
|
61
69
|
|
62
70
|
ensure_http_status(response: response,
|
63
71
|
status: '200',
|
@@ -68,12 +76,6 @@ module OneSignal
|
|
68
76
|
return response
|
69
77
|
end
|
70
78
|
|
71
|
-
private
|
72
|
-
|
73
|
-
def self.auth_key
|
74
|
-
return @@user_auth_key
|
75
|
-
end
|
76
|
-
|
77
79
|
end
|
78
80
|
|
79
81
|
end
|
@@ -2,12 +2,14 @@ module OneSignal
|
|
2
2
|
|
3
3
|
class Notification < OneSignal
|
4
4
|
|
5
|
-
def self.all(params: {})
|
5
|
+
def self.all(params: {}, opts: {})
|
6
|
+
opts[:auth_key] ||= @@api_key
|
7
|
+
|
6
8
|
uri_string = @@base_uri
|
7
9
|
uri_string += "/notifications"
|
8
10
|
uri = URI.parse(uri_string)
|
9
11
|
|
10
|
-
response = send_get_request(uri: uri, params: params)
|
12
|
+
response = send_get_request(uri: uri, params: params, opts: opts)
|
11
13
|
|
12
14
|
ensure_http_status(response: response,
|
13
15
|
status: '200',
|
@@ -18,13 +20,15 @@ module OneSignal
|
|
18
20
|
return response
|
19
21
|
end
|
20
22
|
|
21
|
-
def self.get(id
|
23
|
+
def self.get(id: "", params: {}, opts: {})
|
24
|
+
opts[:auth_key] ||= @@api_key
|
25
|
+
|
22
26
|
uri_string = @@base_uri
|
23
27
|
uri_string += "/notifications"
|
24
28
|
uri_string += "/#{id}"
|
25
29
|
uri = URI.parse(uri_string)
|
26
30
|
|
27
|
-
response = send_get_request(uri: uri, params: params)
|
31
|
+
response = send_get_request(uri: uri, params: params, opts: opts)
|
28
32
|
|
29
33
|
ensure_http_status(response: response,
|
30
34
|
status: '200',
|
@@ -35,12 +39,14 @@ module OneSignal
|
|
35
39
|
return response
|
36
40
|
end
|
37
41
|
|
38
|
-
def self.create(params: {})
|
42
|
+
def self.create(params: {}, opts: {})
|
43
|
+
opts[:auth_key] ||= @@api_key
|
44
|
+
|
39
45
|
uri_string = @@base_uri
|
40
46
|
uri_string += "/notifications"
|
41
47
|
uri = URI.parse(uri_string)
|
42
|
-
|
43
|
-
response = send_post_request(uri: uri, body: params)
|
48
|
+
|
49
|
+
response = send_post_request(uri: uri, body: params, opts: opts)
|
44
50
|
|
45
51
|
if response.code != '200'
|
46
52
|
handle_error(uri: uri, params: params, response: response)
|
@@ -49,13 +55,15 @@ module OneSignal
|
|
49
55
|
return response
|
50
56
|
end
|
51
57
|
|
52
|
-
def self.update(id
|
58
|
+
def self.update(id: "", params: {}, opts: {})
|
59
|
+
opts[:auth_key] ||= @@api_key
|
60
|
+
|
53
61
|
uri_string = @@base_uri
|
54
62
|
uri_string += "/notifications"
|
55
63
|
uri_string += "/#{id}"
|
56
64
|
uri = URI.parse(uri_string)
|
57
65
|
|
58
|
-
response = send_put_request(uri: uri, body: params)
|
66
|
+
response = send_put_request(uri: uri, body: params, opts: opts)
|
59
67
|
|
60
68
|
ensure_http_status(response: response,
|
61
69
|
status: '200',
|
@@ -66,13 +74,15 @@ module OneSignal
|
|
66
74
|
return response
|
67
75
|
end
|
68
76
|
|
69
|
-
def self.delete(id
|
77
|
+
def self.delete(id: "", params: {}, opts: {})
|
78
|
+
opts[:auth_key] ||= @@api_key
|
79
|
+
|
70
80
|
uri_string = @@base_uri
|
71
81
|
uri_string += "/notifications"
|
72
82
|
uri_string += "/#{id}"
|
73
83
|
uri = URI.parse(uri_string)
|
74
84
|
|
75
|
-
response = send_delete_request(uri: uri, params: params)
|
85
|
+
response = send_delete_request(uri: uri, params: params, opts: opts)
|
76
86
|
|
77
87
|
ensure_http_status(response: response,
|
78
88
|
status: '200',
|
@@ -85,21 +95,26 @@ module OneSignal
|
|
85
95
|
|
86
96
|
private
|
87
97
|
|
88
|
-
def self.handle_error(uri
|
98
|
+
def self.handle_error(uri: nil, params: {}, response: nil)
|
89
99
|
msg = "Create Notification error - uri: #{uri} params: #{params}"
|
100
|
+
unless response.nil?
|
101
|
+
code = response.code
|
102
|
+
body = response.body
|
103
|
+
end
|
90
104
|
if is_no_recipients_error(response: response)
|
91
105
|
raise NoRecipientsError.new(message: msg,
|
92
|
-
http_status:
|
93
|
-
http_body:
|
106
|
+
http_status: code,
|
107
|
+
http_body: body)
|
94
108
|
else
|
95
109
|
raise OneSignalError.new(message: msg,
|
96
|
-
http_status:
|
97
|
-
http_body:
|
110
|
+
http_status: code,
|
111
|
+
http_body: body)
|
98
112
|
end
|
99
113
|
end
|
100
114
|
|
101
|
-
def self.is_no_recipients_error(response:)
|
102
|
-
return false if response.
|
115
|
+
def self.is_no_recipients_error(response: nil)
|
116
|
+
return false if response.nil? ||
|
117
|
+
response.code != '400' ||
|
103
118
|
response.body.nil?
|
104
119
|
|
105
120
|
body = JSON.parse(response.body)
|
@@ -43,7 +43,9 @@ module OneSignal
|
|
43
43
|
@@read_timeout
|
44
44
|
end
|
45
45
|
|
46
|
-
def self.http_object(uri:)
|
46
|
+
def self.http_object(uri: nil)
|
47
|
+
return nil if uri.nil?
|
48
|
+
|
47
49
|
http = Net::HTTP.new(uri.host, uri.port)
|
48
50
|
http.use_ssl = uri.scheme == 'https'
|
49
51
|
http.open_timeout = @@open_timeout
|
@@ -51,49 +53,61 @@ module OneSignal
|
|
51
53
|
return http
|
52
54
|
end
|
53
55
|
|
54
|
-
def self.send_post_request(uri
|
56
|
+
def self.send_post_request(uri: nil, body: nil, opts: {})
|
57
|
+
return nil if uri.nil?
|
58
|
+
|
55
59
|
request = Net::HTTP::Post.new(uri.request_uri)
|
56
60
|
request.body = body.to_json
|
57
|
-
request = request_with_headers(request: request)
|
61
|
+
request = request_with_headers(request: request, opts: opts)
|
58
62
|
|
59
63
|
http = http_object(uri: uri)
|
60
64
|
|
61
|
-
|
65
|
+
return http.request(request)
|
62
66
|
end
|
63
67
|
|
64
|
-
def self.send_delete_request(uri
|
68
|
+
def self.send_delete_request(uri: nil, params: {}, opts: {})
|
69
|
+
return nil if uri.nil?
|
70
|
+
|
65
71
|
uri.query = URI.encode_www_form(params) unless params.nil?
|
66
72
|
request = Net::HTTP::Delete.new(uri.request_uri)
|
67
|
-
request = request_with_headers(request: request)
|
73
|
+
request = request_with_headers(request: request, opts: opts)
|
68
74
|
|
69
75
|
http = http_object(uri: uri)
|
70
76
|
|
71
|
-
|
77
|
+
return http.request(request)
|
72
78
|
end
|
73
79
|
|
74
|
-
def self.send_put_request(uri
|
80
|
+
def self.send_put_request(uri: nil, body: nil, opts: {})
|
81
|
+
return nil if uri.nil?
|
82
|
+
|
75
83
|
request = Net::HTTP::Put.new(uri.request_uri)
|
76
84
|
request.body = body.to_json
|
77
|
-
request = request_with_headers(request: request)
|
85
|
+
request = request_with_headers(request: request, opts: opts)
|
78
86
|
|
79
87
|
http = http_object(uri: uri)
|
80
88
|
|
81
|
-
|
89
|
+
return http.request(request)
|
82
90
|
end
|
83
91
|
|
84
|
-
def self.send_get_request(uri
|
92
|
+
def self.send_get_request(uri: nil, params: {}, opts: {})
|
93
|
+
return nil if uri.nil?
|
94
|
+
|
85
95
|
uri.query = URI.encode_www_form(params) unless params.nil?
|
86
96
|
request = Net::HTTP::Get.new(uri.request_uri)
|
87
|
-
request = request_with_headers(request: request)
|
97
|
+
request = request_with_headers(request: request, opts: opts)
|
88
98
|
|
89
99
|
http = http_object(uri: uri)
|
90
100
|
|
91
|
-
|
101
|
+
return http.request(request)
|
92
102
|
end
|
93
103
|
|
94
104
|
private
|
95
105
|
|
96
|
-
def self.ensure_http_status(response
|
106
|
+
def self.ensure_http_status(response: nil, status: nil, method_name: "", uri: "", params: {})
|
107
|
+
if response.nil? || status.nil?
|
108
|
+
raise OneSignalError.new(message: "Please provide a response (#{response}) and a status (#{status})")
|
109
|
+
end
|
110
|
+
|
97
111
|
if response.code != status.to_s
|
98
112
|
msg = "#{self.name}##{method_name} error - uri: #{uri} params: #{params}"
|
99
113
|
raise OneSignalError.new(message: msg,
|
@@ -102,16 +116,14 @@ module OneSignal
|
|
102
116
|
end
|
103
117
|
end
|
104
118
|
|
105
|
-
def self.request_with_headers(request:)
|
119
|
+
def self.request_with_headers(request: nil, opts: {})
|
120
|
+
return nil if request.nil?
|
121
|
+
|
106
122
|
request.add_field("Content-Type", "application/json")
|
107
|
-
request.add_field("Authorization", "Basic #{
|
123
|
+
request.add_field("Authorization", "Basic #{opts[:auth_key]}")
|
108
124
|
return request
|
109
125
|
end
|
110
126
|
|
111
|
-
def self.auth_key
|
112
|
-
return @@api_key
|
113
|
-
end
|
114
|
-
|
115
127
|
end
|
116
128
|
|
117
129
|
end
|
data/lib/one_signal/player.rb
CHANGED
@@ -2,12 +2,14 @@ module OneSignal
|
|
2
2
|
|
3
3
|
class Player < OneSignal
|
4
4
|
|
5
|
-
def self.csv_export(params:)
|
5
|
+
def self.csv_export(params: {}, opts: {})
|
6
|
+
opts[:auth_key] ||= @@api_key
|
7
|
+
|
6
8
|
uri_string = @@base_uri
|
7
9
|
uri_string += "/players/csv_export"
|
8
10
|
uri = URI.parse(uri_string)
|
9
11
|
|
10
|
-
response = send_post_request(uri: uri, body: params)
|
12
|
+
response = send_post_request(uri: uri, body: params, opts: opts)
|
11
13
|
|
12
14
|
ensure_http_status(response: response,
|
13
15
|
status: '200',
|
@@ -18,12 +20,14 @@ module OneSignal
|
|
18
20
|
return response
|
19
21
|
end
|
20
22
|
|
21
|
-
def self.all(params: {})
|
23
|
+
def self.all(params: {}, opts: {})
|
24
|
+
opts[:auth_key] ||= @@api_key
|
25
|
+
|
22
26
|
uri_string = @@base_uri
|
23
27
|
uri_string += "/players"
|
24
28
|
uri = URI.parse(uri_string)
|
25
29
|
|
26
|
-
response = send_get_request(uri: uri, params: params)
|
30
|
+
response = send_get_request(uri: uri, params: params, opts: opts)
|
27
31
|
|
28
32
|
ensure_http_status(response: response,
|
29
33
|
status: '200',
|
@@ -34,13 +38,15 @@ module OneSignal
|
|
34
38
|
return response
|
35
39
|
end
|
36
40
|
|
37
|
-
def self.get(id:)
|
41
|
+
def self.get(id: "", opts: {})
|
42
|
+
opts[:auth_key] ||= @@api_key
|
43
|
+
|
38
44
|
uri_string = @@base_uri
|
39
45
|
uri_string += "/players"
|
40
46
|
uri_string += "/#{id}"
|
41
47
|
uri = URI.parse(uri_string)
|
42
|
-
|
43
|
-
response = send_get_request(uri: uri, params: nil)
|
48
|
+
|
49
|
+
response = send_get_request(uri: uri, params: nil, opts: opts)
|
44
50
|
|
45
51
|
ensure_http_status(response: response,
|
46
52
|
status: '200',
|
@@ -51,12 +57,14 @@ module OneSignal
|
|
51
57
|
return response
|
52
58
|
end
|
53
59
|
|
54
|
-
def self.create(params: {})
|
60
|
+
def self.create(params: {}, opts: {})
|
61
|
+
opts[:auth_key] ||= @@api_key
|
62
|
+
|
55
63
|
uri_string = @@base_uri
|
56
64
|
uri_string += "/players"
|
57
65
|
uri = URI.parse(uri_string)
|
58
66
|
|
59
|
-
response = send_post_request(uri: uri, body: params)
|
67
|
+
response = send_post_request(uri: uri, body: params, opts: opts)
|
60
68
|
|
61
69
|
ensure_http_status(response: response,
|
62
70
|
status: '200',
|
@@ -67,14 +75,16 @@ module OneSignal
|
|
67
75
|
return response
|
68
76
|
end
|
69
77
|
|
70
|
-
def self.create_session(id
|
78
|
+
def self.create_session(id: "", params: {}, opts: {})
|
79
|
+
opts[:auth_key] ||= @@api_key
|
80
|
+
|
71
81
|
uri_string = @@base_uri
|
72
82
|
uri_string += "/players"
|
73
83
|
uri_string += "/#{id}"
|
74
84
|
uri_string += "/on_session"
|
75
85
|
uri = URI.parse(uri_string)
|
76
86
|
|
77
|
-
response = send_post_request(uri: uri, body: params)
|
87
|
+
response = send_post_request(uri: uri, body: params, opts: opts)
|
78
88
|
|
79
89
|
ensure_http_status(response: response,
|
80
90
|
status: '200',
|
@@ -85,14 +95,16 @@ module OneSignal
|
|
85
95
|
return response
|
86
96
|
end
|
87
97
|
|
88
|
-
def self.create_purchase(id
|
98
|
+
def self.create_purchase(id: "", params: {}, opts: {})
|
99
|
+
opts[:auth_key] ||= @@api_key
|
100
|
+
|
89
101
|
uri_string = @@base_uri
|
90
102
|
uri_string += "/players"
|
91
103
|
uri_string += "/#{id}"
|
92
104
|
uri_string += "/on_purchase"
|
93
105
|
uri = URI.parse(uri_string)
|
94
106
|
|
95
|
-
response = send_post_request(uri: uri, body: params)
|
107
|
+
response = send_post_request(uri: uri, body: params, opts: opts)
|
96
108
|
|
97
109
|
ensure_http_status(response: response,
|
98
110
|
status: '200',
|
@@ -103,14 +115,16 @@ module OneSignal
|
|
103
115
|
return response
|
104
116
|
end
|
105
117
|
|
106
|
-
def self.create_focus(id
|
118
|
+
def self.create_focus(id: "", params: {}, opts: {})
|
119
|
+
opts[:auth_key] ||= @@api_key
|
120
|
+
|
107
121
|
uri_string = @@base_uri
|
108
122
|
uri_string += "/players"
|
109
123
|
uri_string += "/#{id}"
|
110
124
|
uri_string += "/on_focus"
|
111
125
|
uri = URI.parse(uri_string)
|
112
126
|
|
113
|
-
response = send_post_request(uri: uri, body: params)
|
127
|
+
response = send_post_request(uri: uri, body: params, opts: opts)
|
114
128
|
|
115
129
|
ensure_http_status(response: response,
|
116
130
|
status: '200',
|
@@ -121,13 +135,15 @@ module OneSignal
|
|
121
135
|
return response
|
122
136
|
end
|
123
137
|
|
124
|
-
def self.update(id
|
138
|
+
def self.update(id: "", params: {}, opts: {})
|
139
|
+
opts[:auth_key] ||= @@api_key
|
140
|
+
|
125
141
|
uri_string = @@base_uri
|
126
142
|
uri_string += "/players"
|
127
143
|
uri_string += "/#{id}"
|
128
144
|
uri = URI.parse(uri_string)
|
129
145
|
|
130
|
-
response = send_put_request(uri: uri, body: params)
|
146
|
+
response = send_put_request(uri: uri, body: params, opts: opts)
|
131
147
|
|
132
148
|
ensure_http_status(response: response,
|
133
149
|
status: '200',
|
@@ -138,6 +154,25 @@ module OneSignal
|
|
138
154
|
return response
|
139
155
|
end
|
140
156
|
|
157
|
+
def self.delete(id: "", params: {}, opts: {})
|
158
|
+
opts[:auth_key] ||= @@api_key
|
159
|
+
|
160
|
+
uri_string = @@base_uri
|
161
|
+
uri_string += "/players"
|
162
|
+
uri_string += "/#{id}"
|
163
|
+
uri = URI.parse(uri_string)
|
164
|
+
|
165
|
+
response = send_delete_request(uri: uri, params: params, opts: opts)
|
166
|
+
|
167
|
+
ensure_http_status(response: response,
|
168
|
+
status: '200',
|
169
|
+
method_name: 'Delete',
|
170
|
+
uri: uri,
|
171
|
+
params: nil)
|
172
|
+
|
173
|
+
return response
|
174
|
+
end
|
175
|
+
|
141
176
|
end
|
142
177
|
|
143
178
|
end
|