urbanairship 7.0.0 → 8.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/.github/PULL_REQUEST_TEMPLATE.md +2 -2
- data/.travis.yml +2 -2
- data/CHANGELOG +9 -0
- data/README.rst +7 -7
- data/docs/attributes.rst +21 -0
- data/docs/named_user.rst +22 -0
- data/lib/urbanairship.rb +2 -0
- data/lib/urbanairship/client.rb +2 -2
- data/lib/urbanairship/common.rb +2 -0
- data/lib/urbanairship/devices/attributes.rb +53 -0
- data/lib/urbanairship/devices/named_user.rb +20 -10
- data/lib/urbanairship/version.rb +1 -1
- data/urbanairship.gemspec +1 -0
- metadata +21 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c91f31ef623a57075fe0acde9fe467d17dc2b0bbb634070c8da11cad54b08f5
|
4
|
+
data.tar.gz: eefb6b294cd953148c27fa91bae207888cbb163c6ec620301aa41b243046b46a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c19a821551da7ad1593c91ef7dd0c922dd2f4637ee74a2f29a1fcecce0db4185b09e0fa908fedcc6b124897c3bcd9a41c1070d841b6cef45436ac26a5ba3382
|
7
|
+
data.tar.gz: 15bd6f34bf76d038d359b79443f7c12464345ea1cf3cc959254a2350b597a5a91be89940713d3de4a5caba50495cd66ea3cb39cbb6e91ad067d511f8c69af4f8
|
@@ -15,8 +15,8 @@ Please include link to open issue if applicable.
|
|
15
15
|
|
16
16
|
* I've tested for Ruby versions:
|
17
17
|
|
18
|
-
- [ ] 2.
|
19
|
-
- [ ] 2.
|
18
|
+
- [ ] 2.6.7
|
19
|
+
- [ ] 2.7.2
|
20
20
|
|
21
21
|
### Airship Contribution Agreement
|
22
22
|
[Link here](https://docs.google.com/forms/d/e/1FAIpQLScErfiz-fXSPpVZ9r8Di2Tr2xDFxt5MgzUel0__9vqUgvko7Q/viewform)
|
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
--------------------
|
2
|
+
8.0.0
|
3
|
+
--------------------
|
4
|
+
- Updates officially supported versions to 2.6.7 and 2.7.2
|
5
|
+
- Fixes headers to reduce warning messages
|
6
|
+
- Fixes for multiple mis-set named user urls
|
7
|
+
- Fix to automatically convert an integer named user to a string so it can be successfully submitted
|
8
|
+
- Adds attribute support for named users
|
9
|
+
|
1
10
|
--------------------
|
2
11
|
7.0.0
|
3
12
|
--------------------
|
data/README.rst
CHANGED
@@ -14,16 +14,16 @@ Requirements
|
|
14
14
|
|
15
15
|
We officially support the following Ruby versions::
|
16
16
|
|
17
|
-
2.
|
18
|
-
2.
|
17
|
+
2.6.7
|
18
|
+
2.7.2
|
19
19
|
|
20
|
-
Newer versions should work as well.
|
20
|
+
Newer 2.x versions should work as well.
|
21
21
|
|
22
22
|
|
23
23
|
Functionality
|
24
24
|
=============
|
25
25
|
|
26
|
-
Version
|
26
|
+
Version 8.0 is a major upgrade, as we have changed the tested/supported versions of Ruby. A more detailed list of changes can be found in the CHANGELOG.
|
27
27
|
|
28
28
|
|
29
29
|
Questions
|
@@ -141,7 +141,7 @@ Simple Tag Push
|
|
141
141
|
|
142
142
|
Specify the Airship server used to make your requests
|
143
143
|
-----------------------------------------------------
|
144
|
-
By default, the request will be sent to the 'go.
|
144
|
+
By default, the request will be sent to the 'go.urbanairship.com' server:
|
145
145
|
|
146
146
|
.. code-block:: ruby
|
147
147
|
|
@@ -172,9 +172,9 @@ Finally, you can change the targeted server on a request basis:
|
|
172
172
|
config.server = 'go.airship.eu'
|
173
173
|
end
|
174
174
|
|
175
|
-
Urbanairship::Client.new(key:'application_key', secret:'master_secret', server: 'go.
|
175
|
+
Urbanairship::Client.new(key:'application_key', secret:'master_secret', server: 'go.urbanairship.com')
|
176
176
|
# The Urbanairship configuration is overridden by the client and the
|
177
|
-
# request will be sent to the 'go.
|
177
|
+
# request will be sent to the 'go.urbanairship.com' server
|
178
178
|
|
179
179
|
Contributing
|
180
180
|
============
|
data/docs/attributes.rst
CHANGED
@@ -24,6 +24,27 @@ The following will set an attribute for a given channel ID.
|
|
24
24
|
|
25
25
|
This should return a 200 response
|
26
26
|
|
27
|
+
Set or Remove Attributes for a Named User
|
28
|
+
-----------------------------------------
|
29
|
+
|
30
|
+
The following example shows you how to set and remove attributes on a given named user.
|
31
|
+
|
32
|
+
.. code-block:: ruby
|
33
|
+
|
34
|
+
require 'urbanairship'
|
35
|
+
airship = Urbanairship::Client.new(key: 'application_key', secret: 'master_secret')
|
36
|
+
named_user = Urbanairship::NamedUser.new(client: airship)
|
37
|
+
named_user.named_user_id = 'named_user'
|
38
|
+
named_user.update_attributes(attributes: [
|
39
|
+
{ action: 'set', key: 'first_name', value: 'Firstname' },
|
40
|
+
{ action: 'remove', key: 'nickname' },
|
41
|
+
{ action: 'set', key: 'last_name', value: 'Lastname', timestamp: Time.now.utc }
|
42
|
+
])
|
43
|
+
|
44
|
+
.. note::
|
45
|
+
|
46
|
+
Timestamp is optional, if missing it will default to 'now'
|
47
|
+
|
27
48
|
Send Push to Audience with Attribute Specifications
|
28
49
|
---------------------------------------------------
|
29
50
|
|
data/docs/named_user.rst
CHANGED
@@ -100,3 +100,25 @@ see `the API documentation
|
|
100
100
|
|
101
101
|
A single request may contain an add or remove field, both, or a single set
|
102
102
|
field.
|
103
|
+
|
104
|
+
Attributes
|
105
|
+
----------
|
106
|
+
|
107
|
+
Set or remove attributes on a named user. For more information, see `the API documentation
|
108
|
+
https://docs.airship.com/api/ua/#operation-api-named_users-named_user_id-attributes-post>`__
|
109
|
+
|
110
|
+
.. code-block:: ruby
|
111
|
+
|
112
|
+
require 'urbanairship'
|
113
|
+
airship = Urbanairship::Client.new(key: 'application_key', secret: 'master_secret')
|
114
|
+
named_user = Urbanairship::NamedUser.new(client: airship)
|
115
|
+
named_user.named_user_id = 'named_user'
|
116
|
+
named_user.update_attributes(attributes: [
|
117
|
+
{ action: 'set', key: 'first_name', value: 'Firstname' },
|
118
|
+
{ action: 'remove', key: 'nickname' },
|
119
|
+
{ action: 'set', key: 'last_name', value: 'Lastname', timestamp: Time.now.utc }
|
120
|
+
])
|
121
|
+
|
122
|
+
.. note::
|
123
|
+
|
124
|
+
Timestamp is optional, if missing it will default to 'now'.
|
data/lib/urbanairship.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'urbanairship/custom_events/custom_event'
|
1
2
|
require 'urbanairship/custom_events/payload'
|
2
3
|
require 'urbanairship/push/audience'
|
3
4
|
require 'urbanairship/push/payload'
|
@@ -12,6 +13,7 @@ require 'urbanairship/devices/sms_notification'
|
|
12
13
|
require 'urbanairship/devices/mms_notification'
|
13
14
|
require 'urbanairship/devices/create_and_send'
|
14
15
|
require 'urbanairship/devices/attribute'
|
16
|
+
require 'urbanairship/devices/attributes'
|
15
17
|
require 'urbanairship/client'
|
16
18
|
require 'urbanairship/common'
|
17
19
|
require 'urbanairship/configuration'
|
data/lib/urbanairship/client.rb
CHANGED
@@ -52,9 +52,9 @@ module Urbanairship
|
|
52
52
|
|
53
53
|
raise ArgumentError.new("path and url can't be both nil") if path.nil? && url.nil?
|
54
54
|
|
55
|
-
headers = {'User-
|
55
|
+
headers = {'User-Agent' => 'UARubyLib/' + Urbanairship::VERSION}
|
56
56
|
headers['Accept'] = 'application/vnd.urbanairship+json; version=3'
|
57
|
-
headers['Content-
|
57
|
+
headers['Content-Type'] = content_type unless content_type.nil?
|
58
58
|
headers['Content-Encoding'] = encoding unless encoding.nil?
|
59
59
|
|
60
60
|
if auth_type == :bearer
|
data/lib/urbanairship/common.rb
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
|
2
|
+
module Urbanairship
|
3
|
+
module Devices
|
4
|
+
class Attributes
|
5
|
+
|
6
|
+
SET = 'set'
|
7
|
+
REMOVE = 'remove'
|
8
|
+
|
9
|
+
def initialize(attributes)
|
10
|
+
@attributes = attributes
|
11
|
+
end
|
12
|
+
|
13
|
+
def payload
|
14
|
+
@payload ||= { attributes: attributes_list }
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def attributes_list
|
20
|
+
@attributes.map{ |attribute| attribute_payload(attribute) }
|
21
|
+
end
|
22
|
+
|
23
|
+
def attribute_payload(attribute)
|
24
|
+
if REMOVE == attribute[:action]
|
25
|
+
remove_payload(attribute)
|
26
|
+
else
|
27
|
+
set_payload(attribute)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def set_payload(attribute)
|
32
|
+
{
|
33
|
+
action: SET,
|
34
|
+
key: attribute[:key],
|
35
|
+
value: attribute[:value],
|
36
|
+
timestamp: (attribute[:timestamp] || timestamp).iso8601,
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def remove_payload(attribute)
|
41
|
+
{
|
42
|
+
action: REMOVE,
|
43
|
+
key: attribute[:key],
|
44
|
+
timestamp: (attribute[:timestamp] || timestamp).iso8601,
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
def timestamp
|
49
|
+
@timestamp ||= Time.now.utc
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'urbanairship'
|
2
2
|
|
3
|
-
|
4
3
|
module Urbanairship
|
5
4
|
module Devices
|
6
5
|
class NamedUser
|
@@ -13,6 +12,17 @@ module Urbanairship
|
|
13
12
|
@named_user_id = nil
|
14
13
|
end
|
15
14
|
|
15
|
+
def update_attributes(attributes: required('attributes'))
|
16
|
+
response = @client.send_request(
|
17
|
+
method: 'POST',
|
18
|
+
body: Urbanairship::Attributes.new(attributes).payload.to_json,
|
19
|
+
path: named_users_path("#{@named_user_id}/attributes"),
|
20
|
+
content_type: CONTENT_TYPE,
|
21
|
+
)
|
22
|
+
logger.info { "Updated attributes for named_user #{@named_user_id}" }
|
23
|
+
response
|
24
|
+
end
|
25
|
+
|
16
26
|
def associate(channel_id: required('channel_id'), device_type: nil)
|
17
27
|
fail ArgumentError,
|
18
28
|
'named_user_id is required for association' if @named_user_id.nil?
|
@@ -20,13 +30,13 @@ module Urbanairship
|
|
20
30
|
payload = {}
|
21
31
|
payload['channel_id'] = channel_id
|
22
32
|
payload['device_type'] = device_type unless device_type.nil?
|
23
|
-
payload['named_user_id'] = @named_user_id
|
33
|
+
payload['named_user_id'] = @named_user_id.to_s
|
24
34
|
|
25
35
|
response = @client.send_request(
|
26
36
|
method: 'POST',
|
27
37
|
body: JSON.dump(payload),
|
28
|
-
path: named_users_path('
|
29
|
-
content_type:
|
38
|
+
path: named_users_path('associate'),
|
39
|
+
content_type: CONTENT_TYPE
|
30
40
|
)
|
31
41
|
logger.info { "Associated channel_id #{channel_id} with named_user #{@named_user_id}" }
|
32
42
|
response
|
@@ -40,8 +50,8 @@ module Urbanairship
|
|
40
50
|
response = @client.send_request(
|
41
51
|
method: 'POST',
|
42
52
|
body: JSON.dump(payload),
|
43
|
-
path: named_users_path('
|
44
|
-
content_type:
|
53
|
+
path: named_users_path('disassociate'),
|
54
|
+
content_type: CONTENT_TYPE
|
45
55
|
)
|
46
56
|
logger.info { "Dissociated channel_id #{channel_id}" }
|
47
57
|
response
|
@@ -51,8 +61,8 @@ module Urbanairship
|
|
51
61
|
fail ArgumentError,
|
52
62
|
'named_user_id is required for lookup' if @named_user_id.nil?
|
53
63
|
response = @client.send_request(
|
54
|
-
|
55
|
-
|
64
|
+
method: 'GET',
|
65
|
+
path: named_users_path('?id=' + @named_user_id),
|
56
66
|
)
|
57
67
|
logger.info { "Retrieved information on named_user_id #{@named_user_id}" }
|
58
68
|
response
|
@@ -101,8 +111,8 @@ module Urbanairship
|
|
101
111
|
response = @client.send_request(
|
102
112
|
method: 'POST',
|
103
113
|
body: JSON.dump(payload),
|
104
|
-
path: named_users_path('
|
105
|
-
content_type:
|
114
|
+
path: named_users_path('uninstall'),
|
115
|
+
content_type: CONTENT_TYPE
|
106
116
|
)
|
107
117
|
logger.info { "Uninstalled named_user_ids #{@named_user_ids} " }
|
108
118
|
response
|
data/lib/urbanairship/version.rb
CHANGED
data/urbanairship.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: urbanairship
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 8.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airship
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -114,6 +114,20 @@ dependencies:
|
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '1'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: timecop
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
117
131
|
description: A Ruby Library for using the Airship web service API for push notifications
|
118
132
|
and rich app pages.
|
119
133
|
email:
|
@@ -171,6 +185,7 @@ files:
|
|
171
185
|
- lib/urbanairship/custom_events/custom_event.rb
|
172
186
|
- lib/urbanairship/custom_events/payload.rb
|
173
187
|
- lib/urbanairship/devices/attribute.rb
|
188
|
+
- lib/urbanairship/devices/attributes.rb
|
174
189
|
- lib/urbanairship/devices/channel_tags.rb
|
175
190
|
- lib/urbanairship/devices/channel_uninstall.rb
|
176
191
|
- lib/urbanairship/devices/create_and_send.rb
|
@@ -199,7 +214,7 @@ licenses:
|
|
199
214
|
- Apache-2.0
|
200
215
|
metadata:
|
201
216
|
allowed_push_host: https://rubygems.org
|
202
|
-
post_install_message:
|
217
|
+
post_install_message:
|
203
218
|
rdoc_options: []
|
204
219
|
require_paths:
|
205
220
|
- lib
|
@@ -214,8 +229,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
229
|
- !ruby/object:Gem::Version
|
215
230
|
version: '0'
|
216
231
|
requirements: []
|
217
|
-
rubygems_version: 3.
|
218
|
-
signing_key:
|
232
|
+
rubygems_version: 3.1.4
|
233
|
+
signing_key:
|
219
234
|
specification_version: 4
|
220
235
|
summary: Ruby Gem for using the Airship API
|
221
236
|
test_files: []
|