adobe-campaign 0.2.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ce601a599a60f8d0c7f9a253a8efe1b4cb2b3afa
4
- data.tar.gz: 9389e1187fdcd318e2227dad55ec768c3ed34eea
2
+ SHA256:
3
+ metadata.gz: 8a2705fa21dd486987478dd1f1ae043e7b82af3200e43879d8774f09742486ca
4
+ data.tar.gz: 1ff2a73149557944443551508f9b93bb9431b12f2397f49b6b97bba3cd0c9297
5
5
  SHA512:
6
- metadata.gz: 207a5e0eb88cc95f59eed5b17092fb27c01f1b4d75643576722fe7147b87e7744c5c8f5847795a30c71924075053b313e76ebdbc42c13d40ce09c695763e28a2
7
- data.tar.gz: 294531e2375c572881df5b9a7a8ff130204252b130630e9a1fcc0af962b32d8534aaa79602a2f37b945ab2dedbada156d2cbb80dc365fc81531cdfe69c597fd2
6
+ metadata.gz: f5c8a13e6077abcd7be9b44745cc5d54872ca6566c337edb0d50b4837853f0689609f4162a2d6da32d1d2f578a625767e9908df3f19248c2e9072cd6231a72c3
7
+ data.tar.gz: fa3f0f1df5f9fb82ccc4383e5b66c98acaa908461b7bd2e14c125b2fe252d4fc58b65734bcc76aad547e254ea16c6afe0e395def2d408d457a47b685ce2e3237
data/.gitignore CHANGED
@@ -9,3 +9,7 @@
9
9
  /tmp/
10
10
  /cache/
11
11
  /vendor/
12
+ *.gem
13
+ .idea/
14
+ .tool-versions
15
+
@@ -3,12 +3,13 @@ AllCops:
3
3
  - Rakefile
4
4
  - config.ru
5
5
  - lib/tasks/**/*.rake
6
+ - lib/**/*.rb
6
7
  Exclude:
7
8
  - vendor/**/*
8
9
  - bin/**/*
9
10
 
10
11
  UseCache: true
11
- CacheRootDirectory: 'cache/'
12
+ CacheRootDirectory: "cache/"
12
13
  TargetRubyVersion: 2.3
13
14
 
14
15
  Rails:
@@ -1 +1 @@
1
- 2.3.1
1
+ 2.6.5
data/Rakefile CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'bundler/gem_tasks'
3
4
  require 'rspec/core/rake_task'
4
5
 
@@ -1,6 +1,6 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
- lib = File.expand_path('../lib', __FILE__)
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'adobe/campaign/version'
6
6
 
@@ -18,13 +18,14 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_runtime_dependency 'rails', '>= 3.1'
22
21
  spec.add_runtime_dependency 'activesupport', '>= 3.1.0'
22
+ spec.add_runtime_dependency 'jwt', '>= 1.0', '< 3.0'
23
+ spec.add_runtime_dependency 'rails', '>= 3.1'
23
24
  spec.add_runtime_dependency 'rest-client', '>= 1.6.0'
24
- spec.add_runtime_dependency 'jwt', '~> 1.0'
25
25
 
26
26
  spec.add_development_dependency 'bundler', '~> 1.11'
27
- spec.add_development_dependency 'rake', '~> 10.0'
28
- spec.add_development_dependency 'rspec', '~> 3.0'
29
27
  spec.add_development_dependency 'guard-rubocop'
28
+ spec.add_development_dependency 'rake', '>= 12.3.3'
29
+ spec.add_development_dependency 'rspec', '~> 3.0'
30
+ spec.add_development_dependency 'rubocop', '~> 0.71.0'
30
31
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'rest-client'
3
4
 
4
5
  require 'adobe/campaign/version'
@@ -7,6 +8,7 @@ require 'adobe/campaign/railtie' if defined? ::Rails::Railtie
7
8
  require 'adobe/campaign/base'
8
9
  require 'adobe/campaign/profile'
9
10
  require 'adobe/campaign/service'
11
+ require 'adobe/campaign/language'
10
12
 
11
13
  module Adobe
12
14
  module Campaign
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Adobe
3
4
  module Campaign
4
5
  class Base
@@ -32,7 +33,7 @@ module Adobe
32
33
  def post_request(url, body)
33
34
  full_url = url_prefix(url)
34
35
  json = body.is_a?(String) ? body : body.to_json
35
- resp = RestClient.post(full_url, json, auth_headers.merge('Content-Type' => 'application/json'))
36
+ resp = RestClient.post(full_url, json, auth_headers.merge('Content-Type' => 'application/json;charset=UTF-8'))
36
37
  JSON.parse(resp.body)
37
38
  end
38
39
 
@@ -49,6 +50,7 @@ module Adobe
49
50
 
50
51
  def load_access_token
51
52
  return @access_token if @access_token && @access_token_expires > Time.zone.now
53
+
52
54
  as_url = "https://#{Adobe::Campaign.configuration.ims_host}/ims/exchange/jwt"
53
55
  as_payload = {
54
56
  client_id: Adobe::Campaign.configuration.api_key,
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Adobe
3
4
  module Campaign
4
5
  class << self
@@ -0,0 +1,194 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Adobe
4
+ module Campaign
5
+ class Language
6
+ def self.map_code(language_code)
7
+ return language_code if language_code.empty?
8
+
9
+ code = normalize language_code
10
+
11
+ return code if ADOBE_LANGUAGE_CODES.include?(code)
12
+
13
+ if code.include?(ADOBE_DELIMITER)
14
+ map_code code.rpartition(ADOBE_DELIMITER).first
15
+ else
16
+ ADOBE_LANGUAGE_CODES.find { |s| s.start_with? code }
17
+ end
18
+ end
19
+
20
+ def self.normalize(language_code)
21
+ code = language_code
22
+ code = code.downcase
23
+ code.gsub(ISO_DELIMITER, ADOBE_DELIMITER)
24
+ end
25
+
26
+ ISO_DELIMITER = '-'
27
+ ADOBE_DELIMITER = '_'
28
+
29
+ #
30
+ # Found at https://cru.campaign.adobe.com/view/home
31
+ # Profiles tab, search, find, and edit a profile, Preferred Lanaguage
32
+ #
33
+ ADOBE_LANGUAGE_CODES = %w[
34
+ af_za
35
+ ar_sa
36
+ ar_ae
37
+ ar_bh
38
+ ar_dz
39
+ ar_eg
40
+ ar_il
41
+ ar_iq
42
+ ar_jo
43
+ ar_kw
44
+ ar_lb
45
+ ar_ly
46
+ ar_ma
47
+ ar_om
48
+ ar_qa
49
+ ar_sy
50
+ ar_tn
51
+ ar_ye
52
+ az_az
53
+ be_by
54
+ bg_bg
55
+ bs_ba
56
+ ca_es
57
+ cs_cz
58
+ da_dk
59
+ de_de
60
+ de_at
61
+ de_be
62
+ de_ch
63
+ de_it
64
+ de_li
65
+ de_lu
66
+ el_gr
67
+ el_cy
68
+ en_us
69
+ en_ae
70
+ en_au
71
+ en_bz
72
+ en_ca
73
+ en_cb
74
+ en_dk
75
+ en_gb
76
+ en_gg
77
+ en_ie
78
+ en_il
79
+ en_im
80
+ en_in
81
+ en_je
82
+ en_jm
83
+ en_kw
84
+ en_my
85
+ en_nz
86
+ en_om
87
+ en_ph
88
+ en_qa
89
+ en_sa
90
+ en_sg
91
+ en_tt
92
+ en_za
93
+ en_zw
94
+ es_es
95
+ es_ar
96
+ es_bo
97
+ es_cl
98
+ es_co
99
+ es_cr
100
+ es_do
101
+ es_ec
102
+ es_gt
103
+ es_hn
104
+ es_mx
105
+ es_ni
106
+ es_pa
107
+ es_pe
108
+ es_pr
109
+ es_py
110
+ es_sv
111
+ es_uy
112
+ es_ve
113
+ et_ee
114
+ eu_es
115
+ fa_ir
116
+ fi_fi
117
+ fo_fo
118
+ fr_fr
119
+ fr_be
120
+ fr_ca
121
+ fr_ch
122
+ fr_lu
123
+ fr_mc
124
+ gl_es
125
+ gu_in
126
+ he_il
127
+ hi_in
128
+ hr_hr
129
+ hu_hu
130
+ hy_am
131
+ id_id
132
+ is_is
133
+ it_it
134
+ it_ch
135
+ ja_jp
136
+ ka_ge
137
+ kk_kz
138
+ kn_in
139
+ ko_kr
140
+ ky_kz
141
+ lt_lt
142
+ lv_lv
143
+ mk_mk
144
+ mn_mn
145
+ mr_in
146
+ ms_my
147
+ ms_bn
148
+ nb_no
149
+ nl_nl
150
+ nl_be
151
+ nn_no
152
+ no_no
153
+ pa_in
154
+ pl_pl
155
+ pt_pt
156
+ pt_br
157
+ ro_ro
158
+ ro_md
159
+ ru_ru
160
+ ru_by
161
+ ru_kz
162
+ ru_ua
163
+ sa_in
164
+ sk_sk
165
+ sl_si
166
+ sq_al
167
+ sq_mk
168
+ sq_xk
169
+ sr_rs
170
+ sr_ba
171
+ sr_xk
172
+ sv_se
173
+ sv_fi
174
+ sw_ke
175
+ ta_in
176
+ te_in
177
+ th_th
178
+ tr_tr
179
+ tr_cy
180
+ tt_ru
181
+ uk_ua
182
+ ur_pk
183
+ ur_in
184
+ uz_uz
185
+ vi_vn
186
+ zh_cn
187
+ zh_hk
188
+ zh_mo
189
+ zh_sg
190
+ zh_tw
191
+ ].freeze
192
+ end
193
+ end
194
+ end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Adobe
3
4
  module Campaign
4
5
  class Profile < Adobe::Campaign::Base
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Adobe
3
4
  module Campaign
4
5
  class Railtie < Rails::Railtie
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Adobe
3
4
  module Campaign
4
5
  class Service < Adobe::Campaign::Base
5
6
  def self.endpoint
6
- 'profileAndServicesExt/service'
7
+ 'profileAndServices/service'
7
8
  end
8
9
 
9
10
  def self.post_subscription(service_subs_url, person_pkey)
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Adobe
3
4
  module Campaign
4
- VERSION = '0.2.0'
5
+ VERSION = '0.4.0'
5
6
  end
6
7
  end
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:disable Metrics/BlockLength
2
+
3
3
  require 'jwt'
4
4
  require 'adobe/campaign'
5
5
 
6
+ # rubocop:disable Metrics/BlockLength
6
7
  namespace :adobe do
7
8
  desc 'Generate a long-life JWT for exchanging with the adobelogic server'
8
9
  task :generate_jwt do
@@ -36,3 +37,4 @@ namespace :adobe do
36
37
  puts "It will expire: #{10.years.from_now}"
37
38
  end
38
39
  end
40
+ # rubocop:enable Metrics/BlockLength
metadata CHANGED
@@ -1,71 +1,77 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adobe-campaign
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spencer Oberstadt
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-10 00:00:00.000000000 Z
11
+ date: 2020-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
19
+ version: 3.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3.1'
26
+ version: 3.1.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: activesupport
28
+ name: jwt
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 3.1.0
33
+ version: '1.0'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '3.0'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - ">="
39
42
  - !ruby/object:Gem::Version
40
- version: 3.1.0
43
+ version: '1.0'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.0'
41
47
  - !ruby/object:Gem::Dependency
42
- name: rest-client
48
+ name: rails
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - ">="
46
52
  - !ruby/object:Gem::Version
47
- version: 1.6.0
53
+ version: '3.1'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - ">="
53
59
  - !ruby/object:Gem::Version
54
- version: 1.6.0
60
+ version: '3.1'
55
61
  - !ruby/object:Gem::Dependency
56
- name: jwt
62
+ name: rest-client
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - "~>"
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
- version: '1.0'
67
+ version: 1.6.0
62
68
  type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - "~>"
72
+ - - ">="
67
73
  - !ruby/object:Gem::Version
68
- version: '1.0'
74
+ version: 1.6.0
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: bundler
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +86,34 @@ dependencies:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
88
  version: '1.11'
89
+ - !ruby/object:Gem::Dependency
90
+ name: guard-rubocop
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
83
103
  - !ruby/object:Gem::Dependency
84
104
  name: rake
85
105
  requirement: !ruby/object:Gem::Requirement
86
106
  requirements:
87
- - - "~>"
107
+ - - ">="
88
108
  - !ruby/object:Gem::Version
89
- version: '10.0'
109
+ version: 12.3.3
90
110
  type: :development
91
111
  prerelease: false
92
112
  version_requirements: !ruby/object:Gem::Requirement
93
113
  requirements:
94
- - - "~>"
114
+ - - ">="
95
115
  - !ruby/object:Gem::Version
96
- version: '10.0'
116
+ version: 12.3.3
97
117
  - !ruby/object:Gem::Dependency
98
118
  name: rspec
99
119
  requirement: !ruby/object:Gem::Requirement
@@ -109,20 +129,20 @@ dependencies:
109
129
  - !ruby/object:Gem::Version
110
130
  version: '3.0'
111
131
  - !ruby/object:Gem::Dependency
112
- name: guard-rubocop
132
+ name: rubocop
113
133
  requirement: !ruby/object:Gem::Requirement
114
134
  requirements:
115
- - - ">="
135
+ - - "~>"
116
136
  - !ruby/object:Gem::Version
117
- version: '0'
137
+ version: 0.71.0
118
138
  type: :development
119
139
  prerelease: false
120
140
  version_requirements: !ruby/object:Gem::Requirement
121
141
  requirements:
122
- - - ">="
142
+ - - "~>"
123
143
  - !ruby/object:Gem::Version
124
- version: '0'
125
- description:
144
+ version: 0.71.0
145
+ description:
126
146
  email:
127
147
  - soberstadt@gmail.com
128
148
  executables: []
@@ -144,6 +164,7 @@ files:
144
164
  - lib/adobe/campaign.rb
145
165
  - lib/adobe/campaign/base.rb
146
166
  - lib/adobe/campaign/configuration.rb
167
+ - lib/adobe/campaign/language.rb
147
168
  - lib/adobe/campaign/profile.rb
148
169
  - lib/adobe/campaign/railtie.rb
149
170
  - lib/adobe/campaign/service.rb
@@ -152,7 +173,7 @@ files:
152
173
  homepage: https://github.com/soberstadt/adobe-campaign
153
174
  licenses: []
154
175
  metadata: {}
155
- post_install_message:
176
+ post_install_message:
156
177
  rdoc_options: []
157
178
  require_paths:
158
179
  - lib
@@ -167,9 +188,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
188
  - !ruby/object:Gem::Version
168
189
  version: '0'
169
190
  requirements: []
170
- rubyforge_project:
171
- rubygems_version: 2.6.8
172
- signing_key:
191
+ rubygems_version: 3.0.3
192
+ signing_key:
173
193
  specification_version: 4
174
194
  summary: A ruby wrapper for connecting your Rails app with Adobe Campaign.
175
195
  test_files: []