urbanairship 9.3.0 → 9.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4eec597e4717d02b44f452c7d1d634402e5957d5fe9df6a9cf052e3bb30d9357
4
- data.tar.gz: 14be54ad8f59edcaa4ce0bfead99249571aa0f6c81d766956886abe994482a5f
3
+ metadata.gz: 979edbaca3a95cc2b422ae5f1c3fda149f0eccc9b3aada416b26a50dc1e360a6
4
+ data.tar.gz: 002a4f86ec42e19c23c60f368a3175bd9c789312c43400705989d173b50e8ddb
5
5
  SHA512:
6
- metadata.gz: 01f091cd844d9dfc38ea6104d4a37aef5afabff3b7ee5bc9c3fc479c492a8dc15c3dbdf71a675c77c6d4138559cdee206dc505438c2c3dabc2b6e7487287add6
7
- data.tar.gz: 9f5706357ceec8f731412fa966ec40f75ad07e0dec229e2673e56793ebfe382e6e01791ba3fc6ee3e024bbc410cca22de527f222c50ebdf013aa5488298d7839
6
+ metadata.gz: 7ba953bb68f8c20f2c5854447fd95419311ef27c8c898bb9453e35f3d00b6d23cd8febc08e47661f8e1ba50128fcc89d89159a6fefe2c76a7b4ae96a974b78f5
7
+ data.tar.gz: b59971c8adcd4b59f93b79bc69a1d0adbf35e5c0938729d7f213d8bb7d0f6ae3c000384c3aee604bfadfde94363ecea27942300531b35f4acaed9bd5a082aa5e
data/CHANGELOG CHANGED
@@ -1,3 +1,10 @@
1
+ ## 9.4.0
2
+
3
+ - Adds email replace method
4
+ - Updates Email class along with register and update methods to accept more parameters
5
+
6
+ ---
7
+
1
8
  ## 9.3.0
2
9
 
3
10
  - Adds Oauth support
data/docs/email.rst CHANGED
@@ -66,7 +66,6 @@ Update Email Channel
66
66
  email_channel.channel_id = '01234567-890a-bcde-f012-3456789abc0'
67
67
  email_channel.type = 'email'
68
68
  email_channel.commercial_opted_in = '2018-10-28T10:34:22'
69
- email_channel.address = 'new.name@new.domain.com'
70
69
  email_channel.timezone = 'America/Los_Angeles'
71
70
  email_channel.locale_country = 'US'
72
71
  email_channel.locale_language = 'en'
@@ -75,7 +74,36 @@ Update Email Channel
75
74
  .. note::
76
75
 
77
76
  The only thing required to make a request is the channel_id. However, anything
78
- that needs to be updated must also be included.
77
+ that needs to be updated must also be included. Please note that you cannot
78
+ update an email address with this method. Please use the replace method instead.
79
+
80
+ Replace Email Channel
81
+ --------------------
82
+
83
+ .. code-block:: ruby
84
+
85
+ require 'urbanairship'
86
+ UA = Urbanairship
87
+ airship = UA::Client.new(key:'application_key', secret:'master_secret')
88
+ email_channel = UA::Email.new(client: airship)
89
+ email_channel.channel_id = '01234567-890a-bcde-f012-3456789abc0'
90
+ email_channel.address = 'new.name@new.domain.com'
91
+ email_channel.type = 'email'
92
+ email_channel.commercial_opted_in = '2018-10-28T10:34:22'
93
+ email_channel.timezone = 'America/Los_Angeles'
94
+ email_channel.locale_country = 'US'
95
+ email_channel.locale_language = 'en'
96
+ email_channel.update
97
+
98
+ .. note::
99
+
100
+ This will replace an existing email channel and will do the following actions:
101
+
102
+ - Register a new channel
103
+ - Associate the new email channel with the same user as the source channel
104
+ - Uninstall the source channel
105
+
106
+ Address, Channel ID and type are all required parameters for this method.
79
107
 
80
108
  Email Tags
81
109
  ----------
@@ -7,10 +7,15 @@ module Urbanairship
7
7
  include Urbanairship::Common
8
8
  include Urbanairship::Loggable
9
9
  attr_accessor :address,
10
+ :click_tracking_opted_in,
11
+ :click_tracking_opted_out,
10
12
  :commercial_opted_in,
11
13
  :commercial_opted_out,
12
14
  :locale_country,
13
15
  :locale_language,
16
+ :open_tracking_opted_in,
17
+ :open_tracking_opted_out,
18
+ :suppression_state,
14
19
  :timezone,
15
20
  :transactional_opted_in,
16
21
  :transactional_opted_out,
@@ -27,10 +32,15 @@ module Urbanairship
27
32
  payload = {
28
33
  'channel': {
29
34
  'address': address,
35
+ 'click_tracking_opted_in': click_tracking_opted_in,
36
+ 'click_tracking_opted_out': click_tracking_opted_out,
30
37
  'commercial_opted_in': commercial_opted_in,
31
38
  'commercial_opted_out': commercial_opted_out,
32
39
  'locale_country': locale_country,
33
40
  'locale_language': locale_language,
41
+ 'open_tracking_opted_in': open_tracking_opted_in,
42
+ 'open_tracking_opted_out': open_tracking_opted_out,
43
+ 'suppression_state': suppression_state,
34
44
  'timezone': timezone,
35
45
  'transactional_opted_in': transactional_opted_in,
36
46
  'transactional_opted_out': transactional_opted_out,
@@ -77,18 +87,19 @@ module Urbanairship
77
87
  end
78
88
 
79
89
  def update
80
- fail ArgumentError, 'address must be set to update email channel' if channel_id.nil?
90
+ fail ArgumentError, 'channel_id must be set to update email channel' if channel_id.nil?
81
91
 
82
92
  channel_data = {
83
93
  'address': address,
84
94
  'commercial_opted_in': commercial_opted_in,
85
95
  'commercial_opted_out': commercial_opted_out,
86
- 'localte_country': locale_country,
96
+ 'locale_country': locale_country,
87
97
  'locale_language': locale_language,
88
98
  'timezone': timezone,
89
99
  'transactional_opted_in': transactional_opted_in,
90
100
  'transactional_opted_out': transactional_opted_out,
91
- 'type': type
101
+ 'device_type': type,
102
+ 'suppression_state': suppression_state
92
103
  }.delete_if {|key, value| value.nil?} #this removes the nil key value pairs
93
104
 
94
105
  payload = {'channel': channel_data}
@@ -102,6 +113,40 @@ module Urbanairship
102
113
  logger.info("Updating email channel with address #{@address}")
103
114
  response
104
115
  end
116
+
117
+ def replace
118
+ fail ArgumentError, 'channel_id must be set to update email channel' if channel_id.nil?
119
+ fail ArgumentError, 'address must be set to update email channel' if address.nil?
120
+ fail ArgumentError, 'type must be set to update email channel' if type.nil?
121
+
122
+ channel_data = {
123
+ 'address': address,
124
+ 'click_tracking_opted_in': click_tracking_opted_in,
125
+ 'click_tracking_opted_out': click_tracking_opted_out,
126
+ 'commercial_opted_in': commercial_opted_in,
127
+ 'commercial_opted_out': commercial_opted_out,
128
+ 'locale_country': locale_country,
129
+ 'locale_language': locale_language,
130
+ 'open_tracking_opted_in': open_tracking_opted_in,
131
+ 'open_tracking_opted_out': open_tracking_opted_out,
132
+ 'suppression_state': suppression_state,
133
+ 'timezone': timezone,
134
+ 'transactional_opted_in': transactional_opted_in,
135
+ 'transactional_opted_out': transactional_opted_out,
136
+ 'type': type
137
+ }.delete_if {|key, value| value.nil?} #this removes the nil key value pairs
138
+
139
+ payload = {'channel': channel_data}
140
+
141
+ response = @client.send_request(
142
+ method: 'POST',
143
+ path: channel_path('email/replace/' + channel_id),
144
+ body: JSON.dump(payload),
145
+ content_type: 'application/json'
146
+ )
147
+ logger.info("Replacing email channel with address #{@address}")
148
+ response
149
+ end
105
150
  end
106
151
 
107
152
  class EmailTags < ChannelTags
@@ -1,3 +1,3 @@
1
1
  module Urbanairship
2
- VERSION = '9.3.0'
2
+ VERSION = '9.4.0'
3
3
  end
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: 9.3.0
4
+ version: 9.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Airship
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-08 00:00:00.000000000 Z
11
+ date: 2025-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client