urbanairship 5.8.0 → 5.9.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/CHANGELOG +7 -0
- data/docs/sms.rst +19 -0
- data/docs/static_lists.rst +2 -2
- data/lib/urbanairship/client.rb +22 -9
- data/lib/urbanairship/devices/channel_uninstall.rb +1 -1
- data/lib/urbanairship/devices/sms.rb +36 -5
- data/lib/urbanairship/devices/static_lists.rb +5 -5
- data/lib/urbanairship/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6dbcc6fe1884df9f5beb53e6bc29406d2d4cb51aabfab22cc45f67b714104064
|
|
4
|
+
data.tar.gz: d147e04cbeadbb51e13325ff9cd5b7af458aa22531b8aab2e4ef0c19544ae15c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7109db5053551032e3c6f933d07e39496b1f8d530349dba64a0b0b1d0b09ed5d2cbec46f89bd3adfe340cbfc0601d0ca089bcf17d302ad498959790915819096
|
|
7
|
+
data.tar.gz: 2e6366c2f3cbb0b35bbb68e78a1752fd32ddfeefe7316ddbcaa609b5971947d8e01c898672eee1eec617ecef222bc36928a972fefcb2b18bad0406993813536b
|
data/CHANGELOG
CHANGED
data/docs/sms.rst
CHANGED
|
@@ -21,6 +21,25 @@ request with an opted_in key.
|
|
|
21
21
|
sms_channel.opted_in = '2018-02-13T11:58:59'
|
|
22
22
|
sms_channel.register
|
|
23
23
|
|
|
24
|
+
Update SMS Channel
|
|
25
|
+
-------------------
|
|
26
|
+
|
|
27
|
+
To update an SMS channel you need a sender, MSISDN, and a channel ID.
|
|
28
|
+
|
|
29
|
+
.. code-block:: ruby
|
|
30
|
+
|
|
31
|
+
require 'urbanairship'
|
|
32
|
+
UA = Urbanairship
|
|
33
|
+
airship = UA::Client.new(key:'application_key', secret:'master_secret')
|
|
34
|
+
sms_channel = UA::Sms.new(client: airship)
|
|
35
|
+
sms_channel.msisdn = '15035556789'
|
|
36
|
+
sms_channel.sender = '12345'
|
|
37
|
+
sms_channel.opted_in = '2020-12-14T11:58:59'
|
|
38
|
+
sms_channel.timezone = 'America/Denver'
|
|
39
|
+
sms_channel.channel_id = 'a1b2c3d4e5f6'
|
|
40
|
+
sms_channel.update
|
|
41
|
+
|
|
42
|
+
|
|
24
43
|
Opt-Out of SMS Messages
|
|
25
44
|
-----------------------
|
|
26
45
|
|
data/docs/static_lists.rst
CHANGED
|
@@ -28,7 +28,7 @@ string keys to arbitrary JSON values.
|
|
|
28
28
|
airship = UA::Client.new(key:'application_key', secret:'master_secret')
|
|
29
29
|
static_list = UA::StaticList.new(client: airship)
|
|
30
30
|
static_list.name = 'list_name'
|
|
31
|
-
static_list.create(description: 'description',
|
|
31
|
+
static_list.create(description: 'description', extra: {'key': 'value'})
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
Upload List
|
|
@@ -71,7 +71,7 @@ Updates the metadata of a static list.
|
|
|
71
71
|
airship = UA::Client.new(key:'application_key', secret:'master_secret')
|
|
72
72
|
static_list = UA::StaticList.new(client: airship)
|
|
73
73
|
static_list.name = 'list_name'
|
|
74
|
-
static_list.update(description: 'description', {
|
|
74
|
+
static_list.update(description: 'new description', 'extra': {'new_key': 'new_value' })
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
Delete List
|
data/lib/urbanairship/client.rb
CHANGED
|
@@ -13,10 +13,12 @@ module Urbanairship
|
|
|
13
13
|
#
|
|
14
14
|
# @param [Object] key Application Key
|
|
15
15
|
# @param [Object] secret Application Secret
|
|
16
|
+
# @param [String] token Application Auth Token (for custom events endpoint)
|
|
16
17
|
# @return [Object] Client
|
|
17
|
-
def initialize(key: required('key'), secret: required('secret'))
|
|
18
|
+
def initialize(key: required('key'), secret: required('secret'), token: nil)
|
|
18
19
|
@key = key
|
|
19
20
|
@secret = secret
|
|
21
|
+
@token = token
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
# Send a request to Airship's API
|
|
@@ -25,10 +27,11 @@ module Urbanairship
|
|
|
25
27
|
# @param [Object] body Request Body
|
|
26
28
|
# @param [Object] url Request URL
|
|
27
29
|
# @param [Object] content_type Content-Type
|
|
28
|
-
# @param [Object]
|
|
30
|
+
# @param [Object] encoding Encoding
|
|
31
|
+
# @param [Symbol] auth_type (:basic|:bearer)
|
|
29
32
|
# @return [Object] Push Response
|
|
30
33
|
def send_request(method: required('method'), url: required('url'), body: nil,
|
|
31
|
-
content_type: nil, encoding: nil)
|
|
34
|
+
content_type: nil, encoding: nil, auth_type: :basic)
|
|
32
35
|
req_type = case method
|
|
33
36
|
when 'GET'
|
|
34
37
|
:get
|
|
@@ -46,9 +49,14 @@ module Urbanairship
|
|
|
46
49
|
headers['Accept'] = 'application/vnd.urbanairship+json; version=3'
|
|
47
50
|
headers['Content-type'] = content_type unless content_type.nil?
|
|
48
51
|
headers['Content-Encoding'] = encoding unless encoding.nil?
|
|
52
|
+
|
|
53
|
+
if auth_type == :bearer
|
|
54
|
+
raise ArgumentError.new('token must be provided as argument if auth_type=bearer') if @token.nil?
|
|
55
|
+
headers['X-UA-Appkey'] = @key
|
|
56
|
+
headers['Authorization'] = "Bearer #{@token}"
|
|
57
|
+
end
|
|
49
58
|
|
|
50
|
-
debug = "Making #{method} request to #{url}.\n"+
|
|
51
|
-
"\tHeaders:\n"
|
|
59
|
+
debug = "Making #{method} request to #{url}.\n"+ "\tHeaders:\n"
|
|
52
60
|
debug += "\t\tcontent-type: #{content_type}\n" unless content_type.nil?
|
|
53
61
|
debug += "\t\tcontent-encoding: gzip\n" unless encoding.nil?
|
|
54
62
|
debug += "\t\taccept: application/vnd.urbanairship+json; version=3\n"
|
|
@@ -56,15 +64,20 @@ module Urbanairship
|
|
|
56
64
|
|
|
57
65
|
logger.debug(debug)
|
|
58
66
|
|
|
59
|
-
|
|
67
|
+
params = {
|
|
60
68
|
method: method,
|
|
61
69
|
url: url,
|
|
62
70
|
headers: headers,
|
|
63
|
-
user: @key,
|
|
64
|
-
password: @secret,
|
|
65
71
|
payload: body,
|
|
66
72
|
timeout: Urbanairship.configuration.timeout
|
|
67
|
-
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if auth_type == :basic
|
|
76
|
+
params[:user] = @key
|
|
77
|
+
params[:password] = @secret
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
response = RestClient::Request.execute(params)
|
|
68
81
|
|
|
69
82
|
logger.debug("Received #{response.code} response. Headers:\n\t#{response.headers}\nBody:\n\t#{response.body}")
|
|
70
83
|
Response.check_code(response.code, response)
|
|
@@ -5,7 +5,14 @@ module Urbanairship
|
|
|
5
5
|
class Sms
|
|
6
6
|
include Urbanairship::Common
|
|
7
7
|
include Urbanairship::Loggable
|
|
8
|
-
attr_accessor :msisdn,
|
|
8
|
+
attr_accessor :msisdn,
|
|
9
|
+
:sender,
|
|
10
|
+
:opted_in,
|
|
11
|
+
:sender,
|
|
12
|
+
:locale_country,
|
|
13
|
+
:locale_language,
|
|
14
|
+
:timezone,
|
|
15
|
+
:channel_id
|
|
9
16
|
|
|
10
17
|
def initialize(client: required('client'))
|
|
11
18
|
@client = client
|
|
@@ -31,9 +38,33 @@ module Urbanairship
|
|
|
31
38
|
response
|
|
32
39
|
end
|
|
33
40
|
|
|
41
|
+
def update
|
|
42
|
+
fail ArgumentError, 'sender must be set to update sms channel' if sender.nil?
|
|
43
|
+
fail ArgumentError, 'msisdn must be set to update sms channel' if msisdn.nil?
|
|
44
|
+
fail ArgumentError, 'channel_id must be set to update sms channel' if channel_id.nil?
|
|
45
|
+
|
|
46
|
+
payload = {
|
|
47
|
+
'msisdn': msisdn,
|
|
48
|
+
'sender': sender,
|
|
49
|
+
'opted_in': opted_in,
|
|
50
|
+
'locale_country': locale_country,
|
|
51
|
+
'locale_language': locale_language,
|
|
52
|
+
'timezone': timezone
|
|
53
|
+
}.delete_if {|key, value| value.nil?} #this removes the nil key value pairs
|
|
54
|
+
|
|
55
|
+
response = @client.send_request(
|
|
56
|
+
method: 'PUT',
|
|
57
|
+
body: JSON.dump(payload),
|
|
58
|
+
url: CHANNEL_URL + 'sms/' + channel_id,
|
|
59
|
+
content_type: 'application/json'
|
|
60
|
+
)
|
|
61
|
+
logger.info("Updating SMS channel with msisdn #{@channel_id}")
|
|
62
|
+
response
|
|
63
|
+
end
|
|
64
|
+
|
|
34
65
|
def opt_out
|
|
35
|
-
fail ArgumentError, 'sender must be set to
|
|
36
|
-
fail ArgumentError, 'msisdn must be set to
|
|
66
|
+
fail ArgumentError, 'sender must be set to opt out sms channel' if sender.nil?
|
|
67
|
+
fail ArgumentError, 'msisdn must be set to opt out sms channel' if msisdn.nil?
|
|
37
68
|
|
|
38
69
|
payload = {
|
|
39
70
|
'msisdn': msisdn,
|
|
@@ -51,8 +82,8 @@ module Urbanairship
|
|
|
51
82
|
end
|
|
52
83
|
|
|
53
84
|
def uninstall
|
|
54
|
-
fail ArgumentError, 'sender must be set to
|
|
55
|
-
fail ArgumentError, 'msisdn must be set to
|
|
85
|
+
fail ArgumentError, 'sender must be set to uninstall sms channel' if sender.nil?
|
|
86
|
+
fail ArgumentError, 'msisdn must be set to uninstall sms channel' if msisdn.nil?
|
|
56
87
|
|
|
57
88
|
payload = {
|
|
58
89
|
'msisdn': msisdn,
|
|
@@ -13,11 +13,11 @@ module Urbanairship
|
|
|
13
13
|
@client = client
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
def create(description: nil,
|
|
16
|
+
def create(description: nil, extra: nil)
|
|
17
17
|
fail ArgumentError, 'Name must be set' if name.nil?
|
|
18
18
|
payload = {'name': name}
|
|
19
19
|
payload['description'] = description unless description.nil?
|
|
20
|
-
payload['
|
|
20
|
+
payload['extra'] = extra unless extra.nil?
|
|
21
21
|
|
|
22
22
|
response = @client.send_request(
|
|
23
23
|
method: 'POST',
|
|
@@ -51,13 +51,13 @@ module Urbanairship
|
|
|
51
51
|
response
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
def update(description: nil,
|
|
54
|
+
def update(description: nil, extra: nil)
|
|
55
55
|
fail ArgumentError, 'Name must be set' if name.nil?
|
|
56
56
|
fail ArgumentError,
|
|
57
|
-
'Either description or extras must be set to a value' if description.nil? and
|
|
57
|
+
'Either description or extras must be set to a value' if description.nil? and extra.nil?
|
|
58
58
|
payload = {}
|
|
59
59
|
payload['description'] = description unless description.nil?
|
|
60
|
-
payload['
|
|
60
|
+
payload['extra'] = extra unless extra.nil?
|
|
61
61
|
response = @client.send_request(
|
|
62
62
|
method: 'PUT',
|
|
63
63
|
body: JSON.dump(payload),
|
data/lib/urbanairship/version.rb
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: 5.
|
|
4
|
+
version: 5.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Airship
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-12-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rest-client
|