workarea-mail_chimp 3.0.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.
Files changed (142) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +15 -0
  3. data/.gitignore +55 -0
  4. data/.markdownlint.json +10 -0
  5. data/.rails-rubocop.yml +119 -0
  6. data/.rubocop.yml +8 -0
  7. data/.scss-lint.yml +188 -0
  8. data/CHANGELOG.md +244 -0
  9. data/Gemfile +9 -0
  10. data/README.md +115 -0
  11. data/Rakefile +53 -0
  12. data/app/assets/javascripts/workarea/storefront/mail_chimp/mail_chimp_tracking.js +15 -0
  13. data/app/controllers/workarea/storefront/application_controller.decorator +11 -0
  14. data/app/controllers/workarea/storefront/cart_items_controller.decorator +18 -0
  15. data/app/controllers/workarea/storefront/checkout/addresses_controller.decorator +13 -0
  16. data/app/controllers/workarea/storefront/checkout/shipping_controller.decorator +13 -0
  17. data/app/controllers/workarea/storefront/users/accounts_controller.decorator +37 -0
  18. data/app/models/workarea/catalog/product.decorator +7 -0
  19. data/app/models/workarea/mail_chimp/group.rb +39 -0
  20. data/app/models/workarea/mail_chimp/store.rb +26 -0
  21. data/app/models/workarea/order.decorator +9 -0
  22. data/app/models/workarea/user.decorator +31 -0
  23. data/app/services/workarea/mail_chimp/address.rb +28 -0
  24. data/app/services/workarea/mail_chimp/cart.rb +78 -0
  25. data/app/services/workarea/mail_chimp/order.rb +97 -0
  26. data/app/services/workarea/mail_chimp/product.rb +43 -0
  27. data/app/services/workarea/mail_chimp/variant.rb +43 -0
  28. data/app/view_models/workarea/storefront/user_view_model.decorator +16 -0
  29. data/app/views/workarea/storefront/mail_chimp/_ecommerce_javascript.html.haml +2 -0
  30. data/app/views/workarea/storefront/users/accounts/_edit.html.haml +12 -0
  31. data/app/views/workarea/storefront/users/accounts/_email_interests.html.haml +13 -0
  32. data/app/workers/workarea/mail_chimp/ecommerce/save_cart.rb +40 -0
  33. data/app/workers/workarea/mail_chimp/ecommerce/save_order.rb +31 -0
  34. data/app/workers/workarea/mail_chimp/ecommerce/save_product.rb +31 -0
  35. data/app/workers/workarea/mail_chimp/list_subscriber.rb +30 -0
  36. data/app/workers/workarea/mail_chimp/list_unsubscriber.rb +22 -0
  37. data/app/workers/workarea/mail_chimp/subscription_edit.rb +28 -0
  38. data/bin/rails +19 -0
  39. data/config/initializers/appends.rb +21 -0
  40. data/config/initializers/workarea.rb +14 -0
  41. data/config/locales/en.yml +15 -0
  42. data/lib/gibbon/request_decorator.rb +10 -0
  43. data/lib/integrations/workarea/mail_chimp/bogus_api_request.rb +30 -0
  44. data/lib/integrations/workarea/mail_chimp/bogus_gateway.rb +35 -0
  45. data/lib/integrations/workarea/mail_chimp/bogus_request.rb +78 -0
  46. data/lib/integrations/workarea/mail_chimp/gateway.rb +86 -0
  47. data/lib/integrations/workarea/mail_chimp/gateway/list.rb +47 -0
  48. data/lib/integrations/workarea/mail_chimp/gateway/members.rb +61 -0
  49. data/lib/integrations/workarea/mail_chimp/gateway/subscribe_argument_builder.rb +101 -0
  50. data/lib/tasks/mail_chimp.rake +71 -0
  51. data/lib/workarea/mail_chimp.rb +72 -0
  52. data/lib/workarea/mail_chimp/engine.rb +14 -0
  53. data/lib/workarea/mail_chimp/errors.rb +2 -0
  54. data/lib/workarea/mail_chimp/tasks/ecommerce.rb +43 -0
  55. data/lib/workarea/mail_chimp/version.rb +5 -0
  56. data/script/admin_ci +9 -0
  57. data/script/ci +11 -0
  58. data/script/core_ci +9 -0
  59. data/script/plugins_ci +9 -0
  60. data/script/storefront_ci +9 -0
  61. data/test/dummy/Rakefile +6 -0
  62. data/test/dummy/app/assets/config/manifest.js +4 -0
  63. data/test/dummy/app/assets/images/.keep +0 -0
  64. data/test/dummy/app/assets/javascripts/application.js +13 -0
  65. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  66. data/test/dummy/app/controllers/application_controller.rb +3 -0
  67. data/test/dummy/app/controllers/concerns/.keep +0 -0
  68. data/test/dummy/app/helpers/application_helper.rb +2 -0
  69. data/test/dummy/app/jobs/application_job.rb +2 -0
  70. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  71. data/test/dummy/app/models/concerns/.keep +0 -0
  72. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  73. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  74. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  75. data/test/dummy/bin/bundle +3 -0
  76. data/test/dummy/bin/rails +4 -0
  77. data/test/dummy/bin/rake +4 -0
  78. data/test/dummy/bin/setup +34 -0
  79. data/test/dummy/bin/update +29 -0
  80. data/test/dummy/config.ru +5 -0
  81. data/test/dummy/config/application.rb +23 -0
  82. data/test/dummy/config/boot.rb +5 -0
  83. data/test/dummy/config/cable.yml +9 -0
  84. data/test/dummy/config/environment.rb +5 -0
  85. data/test/dummy/config/environments/development.rb +56 -0
  86. data/test/dummy/config/environments/production.rb +86 -0
  87. data/test/dummy/config/environments/test.rb +43 -0
  88. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  89. data/test/dummy/config/initializers/assets.rb +11 -0
  90. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  91. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  92. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  93. data/test/dummy/config/initializers/inflections.rb +16 -0
  94. data/test/dummy/config/initializers/mime_types.rb +4 -0
  95. data/test/dummy/config/initializers/new_framework_defaults.rb +21 -0
  96. data/test/dummy/config/initializers/session_store.rb +3 -0
  97. data/test/dummy/config/initializers/workarea.rb +5 -0
  98. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  99. data/test/dummy/config/locales/en.yml +23 -0
  100. data/test/dummy/config/puma.rb +47 -0
  101. data/test/dummy/config/routes.rb +5 -0
  102. data/test/dummy/config/secrets.yml +22 -0
  103. data/test/dummy/config/spring.rb +6 -0
  104. data/test/dummy/db/seeds.rb +2 -0
  105. data/test/dummy/lib/assets/.keep +0 -0
  106. data/test/factories/mail_chimp.rb +50 -0
  107. data/test/integration/workarea/mailchimp/subscription_test.rb +52 -0
  108. data/test/integration/workarea/mailchimp/tracking_params_test.rb +50 -0
  109. data/test/integration/workarea/mailchimp/unsubscribe_test.rb +14 -0
  110. data/test/integration/workarea/storefront/mail_chimp_order_test.rb +106 -0
  111. data/test/integration/workarea/storefront/mail_chimp_product_test.rb +51 -0
  112. data/test/integration/workarea/storefront/mail_chimp_site_javascript_test.rb +25 -0
  113. data/test/lib/workarea/mailchimp/gateway/list_test.rb +48 -0
  114. data/test/lib/workarea/mailchimp/gateway_test.rb +196 -0
  115. data/test/lib/workarea/mailchimp/tasks/ecommerce_test.rb +40 -0
  116. data/test/services/workarea/mail_chimp/cart_test.rb +44 -0
  117. data/test/services/workarea/mail_chimp/order_test.rb +50 -0
  118. data/test/services/workarea/mail_chimp/product_test.rb +29 -0
  119. data/test/support/workarea/mail_chimp_api_config.rb +33 -0
  120. data/test/system/workarea/storefront/campaign_tracking_test.rb +14 -0
  121. data/test/system/workarea/storefront/group_test.rb +33 -0
  122. data/test/system/workarea/storefront/mail_chimp_accounts_system_test.rb +79 -0
  123. data/test/test_helper.rb +17 -0
  124. data/test/vcr_cassettes/get_default_list_interests.yml +104 -0
  125. data/test/vcr_cassettes/get_member_details_no_match.yml +51 -0
  126. data/test/vcr_cassettes/get_member_details_unsubscribed.yml +51 -0
  127. data/test/vcr_cassettes/interest_categories_read.yml +104 -0
  128. data/test/vcr_cassettes/mail_chimp/tasks/create_store-successful.yml +97 -0
  129. data/test/vcr_cassettes/mc_order_test.yml +381 -0
  130. data/test/vcr_cassettes/mc_product_test.yml +234 -0
  131. data/test/vcr_cassettes/subscribe_to_default_list.yml +254 -0
  132. data/test/vcr_cassettes/subscribe_to_default_list_interest_groups.yml +254 -0
  133. data/test/vcr_cassettes/subscribe_to_default_list_with_groupings.yml +254 -0
  134. data/test/vcr_cassettes/subscribe_to_default_list_with_user_details.yml +254 -0
  135. data/test/vcr_cassettes/unsubscribe_from_default_list.yml +53 -0
  136. data/test/vcr_cassettes/update_member_on_default_list_change_email.yml +254 -0
  137. data/test/vcr_cassettes/update_member_on_default_list_change_groupings.yml +254 -0
  138. data/test/workers/workarea/mail_chimp/ecommerce/save_cart_test.rb +28 -0
  139. data/test/workers/workarea/mail_chimp/ecommerce/save_order_test.rb +15 -0
  140. data/test/workers/workarea/mail_chimp/ecommerce/save_product_test.rb +15 -0
  141. data/workarea-mail_chimp.gemspec +20 -0
  142. metadata +212 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e98e365b898d3a3685ad0c1401c70541626ec92300c06e13abd8b10638e5e946
4
+ data.tar.gz: 10b5c6bd969ddcf97493d9a9d6f95a581e251ecc1290df35dc047c7eb619245e
5
+ SHA512:
6
+ metadata.gz: ad132ab4ce9014638aa274841ba99e9b2e75584b58b00609ba194dc7853f98903199218e69cdd5b32d2494b495ac31c9f4031b96fb5787e3b275a0e80acdf9ad
7
+ data.tar.gz: f2d608d6919eea817b79378fb9ddd7d0870fb75766a20a0a0277704c655749f3658c8ab749af1ba2904998d854a3de3b9a59645303eeeb8faf0ef5fefa4fe5cc
data/.editorconfig ADDED
@@ -0,0 +1,15 @@
1
+ # editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ charset = utf-8
6
+ indent_style = space
7
+ end_of_line = lf
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [{*.rb,*.haml}]
12
+ indent_size = 2
13
+
14
+ [{*.js,*.jst,*.ejs,*.scss}]
15
+ indent_size = 4
data/.gitignore ADDED
@@ -0,0 +1,55 @@
1
+ ## ruby
2
+ .gitkeep
3
+ .DS_Store
4
+ *.gem
5
+ *.rbc
6
+ /.config
7
+ /coverage/
8
+ /InstalledFiles
9
+ /pkg/
10
+ /test/reports/
11
+ /test/examples.txt
12
+ /test/tmp/
13
+ /test/version_tmp/
14
+ /tmp/
15
+
16
+ /test/dummy/log/
17
+ /test/dummy/tmp/
18
+ /test/dummy/public/
19
+ .byebug_history
20
+
21
+ ## Specific to RubyMotion:
22
+ .dat*
23
+ .repl_history
24
+ build/
25
+ *.bridgesupport
26
+ build-iPhoneOS/
27
+ build-iPhoneSimulator/
28
+
29
+ ## Specific to RubyMotion (use of CocoaPods):
30
+ #
31
+ # We recommend against adding the Pods directory to your .gitignore. However
32
+ # you should judge for yourself, the pros and cons are mentioned at:
33
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
34
+ #
35
+ # vendor/Pods/
36
+
37
+ ## Documentation cache and generated files:
38
+ /.yardoc/
39
+ /_yardoc/
40
+ /doc/
41
+ /rdoc/
42
+
43
+ ## Environment normalization:
44
+ /.bundle/
45
+ /vendor/bundle
46
+ /lib/bundler/man/
47
+
48
+ # for a library or gem, you might want to ignore these files since the code is
49
+ # intended to run in multiple environments; otherwise, check them in:
50
+ Gemfile.lock
51
+ .ruby-version
52
+ # .ruby-gemset
53
+
54
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
55
+ .rvmrc
@@ -0,0 +1,10 @@
1
+ {
2
+ "default": true,
3
+ "MD003": {
4
+ "style": "setext_with_atx"
5
+ },
6
+ "MD007": {
7
+ "indent": 4
8
+ },
9
+ "no-hard-tabs": false
10
+ }
@@ -0,0 +1,119 @@
1
+ AllCops:
2
+ # RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
3
+ # to ignore them, so only the ones explicitly set in this file are enabled.
4
+ DisabledByDefault: true
5
+
6
+ # Prefer &&/|| over and/or.
7
+ Style/AndOr:
8
+ Enabled: true
9
+
10
+ # Do not use braces for hash literals when they are the last argument of a
11
+ # method call.
12
+ Style/BracesAroundHashParameters:
13
+ Enabled: true
14
+
15
+ # Align `when` with `case`.
16
+ Layout/CaseIndentation:
17
+ Enabled: true
18
+
19
+ # Align comments with method definitions.
20
+ Layout/CommentIndentation:
21
+ Enabled: true
22
+
23
+ # No extra empty lines.
24
+ Layout/EmptyLines:
25
+ Enabled: true
26
+
27
+ # In a regular class definition, no empty lines around the body.
28
+ Layout/EmptyLinesAroundClassBody:
29
+ Enabled: true
30
+
31
+ # In a regular method definition, no empty lines around the body.
32
+ Layout/EmptyLinesAroundMethodBody:
33
+ Enabled: true
34
+
35
+ # In a regular module definition, no empty lines around the body.
36
+ Layout/EmptyLinesAroundModuleBody:
37
+ Enabled: true
38
+
39
+ # Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
40
+ Style/HashSyntax:
41
+ Enabled: true
42
+
43
+ # Method definitions after `private` or `protected` isolated calls need one
44
+ # extra level of indentation.
45
+ Layout/IndentationConsistency:
46
+ Enabled: true
47
+ EnforcedStyle: rails
48
+
49
+ # Two spaces, no tabs (for indentation).
50
+ Layout/IndentationWidth:
51
+ Enabled: true
52
+
53
+ Layout/SpaceAfterColon:
54
+ Enabled: true
55
+
56
+ Layout/SpaceAfterComma:
57
+ Enabled: true
58
+
59
+ Layout/SpaceAroundEqualsInParameterDefault:
60
+ Enabled: true
61
+
62
+ Layout/SpaceAroundKeyword:
63
+ Enabled: true
64
+
65
+ Layout/SpaceAroundOperators:
66
+ Enabled: true
67
+
68
+ Layout/SpaceBeforeFirstArg:
69
+ Enabled: true
70
+
71
+ # Defining a method with parameters needs parentheses.
72
+ Style/MethodDefParentheses:
73
+ Enabled: true
74
+
75
+ # Use `foo {}` not `foo{}`.
76
+ Layout/SpaceBeforeBlockBraces:
77
+ Enabled: true
78
+
79
+ # Use `foo { bar }` not `foo {bar}`.
80
+ Layout/SpaceInsideBlockBraces:
81
+ Enabled: true
82
+
83
+ # Use `{ a: 1 }` not `{a:1}`.
84
+ Layout/SpaceInsideHashLiteralBraces:
85
+ Enabled: true
86
+
87
+ Layout/SpaceInsideParens:
88
+ Enabled: true
89
+
90
+ # Check quotes usage according to lint rule below.
91
+ Style/StringLiterals:
92
+ Enabled: true
93
+ EnforcedStyle: double_quotes
94
+
95
+ # Detect hard tabs, no hard tabs.
96
+ Layout/Tab:
97
+ Enabled: true
98
+
99
+ # Blank lines should not have any spaces.
100
+ Layout/TrailingBlankLines:
101
+ Enabled: true
102
+
103
+ # No trailing whitespace.
104
+ Layout/TrailingWhitespace:
105
+ Enabled: true
106
+
107
+ # Use quotes for string literals when they are enough.
108
+ Style/UnneededPercentQ:
109
+ Enabled: true
110
+
111
+ # Align `end` with the matching keyword or starting expression except for
112
+ # assignments, where it should be aligned with the LHS.
113
+ Lint/EndAlignment:
114
+ Enabled: true
115
+ EnforcedStyleAlignWith: variable
116
+
117
+ # Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
118
+ Lint/RequireParentheses:
119
+ Enabled: true
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ inherit_from: .rails-rubocop.yml
2
+
3
+ AllCops:
4
+ TargetRubyVersion: 2.4
5
+ Exclude:
6
+ - 'lib/mail_chimp.rb'
7
+ - 'lib/mail_chimp/**/*'
8
+ - 'test/dummy/**/*'
data/.scss-lint.yml ADDED
@@ -0,0 +1,188 @@
1
+ # Extension of the default configuration:
2
+ # https://github.com/causes/scss-lint/blob/master/config/default.yml
3
+
4
+ linters:
5
+ Comment:
6
+ enabled: false
7
+
8
+ DeclarationOrder:
9
+ enabled: true
10
+
11
+ ElsePlacement:
12
+ enabled: true
13
+ style: new_line
14
+
15
+ EmptyRule:
16
+ enabled: false
17
+
18
+ HexLength:
19
+ enabled: true
20
+ style: long
21
+
22
+ Indentation:
23
+ enabled: true
24
+ allow_non_nested_indentation: true
25
+ character: space
26
+ width: 4
27
+
28
+ LeadingZero:
29
+ enabled: true
30
+ style: include_zero
31
+
32
+ MergeableSelector:
33
+ enabled: true
34
+ force_nesting: false
35
+
36
+ PropertySortOrder:
37
+ enabled: true
38
+ ignore_unspecified: false
39
+ separate_groups: false
40
+ order:
41
+ - display
42
+ -
43
+ - position
44
+ - top
45
+ - right
46
+ - bottom
47
+ - left
48
+ - z-index
49
+ -
50
+ - margin
51
+ - margin-top
52
+ - margin-right
53
+ - margin-bottom
54
+ - margin-left
55
+ -
56
+ - margin-collapse
57
+ - margin-top-collapse
58
+ - margin-right-collapse
59
+ - margin-bottom-collapse
60
+ - margin-left-collapse
61
+ -
62
+ - padding
63
+ - padding-top
64
+ - padding-right
65
+ - padding-bottom
66
+ - padding-left
67
+ -
68
+ - width
69
+ - height
70
+ - max-width
71
+ - max-height
72
+ - min-width
73
+ - min-height
74
+ -
75
+ - float
76
+ - clear
77
+ -
78
+ - color
79
+ -
80
+ - font
81
+ - font-size
82
+ - font-style
83
+ - font-family
84
+ - font-weight
85
+ - font-variant
86
+ - font-smoothing
87
+ -
88
+ - line-height
89
+ - letter-spacing
90
+ - word-spacing
91
+ -
92
+ - text-align
93
+ - text-indent
94
+ - text-shadow
95
+ - text-overflow
96
+ - text-rendering
97
+ - text-transform
98
+ - text-decoration
99
+ - text-size-adjust
100
+ -
101
+ - word-break
102
+ - word-wrap
103
+ -
104
+ - white-space
105
+ -
106
+ - background
107
+ - background-size
108
+ - background-color
109
+ - background-image
110
+ - background-repeat
111
+ - background-position
112
+ - background-attachment
113
+ -
114
+ - border
115
+ - border-top
116
+ - border-right
117
+ - border-bottom
118
+ - border-left
119
+ -
120
+ - border-image
121
+ - border-spacing
122
+ - border-collapse
123
+ -
124
+ - border-color
125
+ - border-top-color
126
+ - border-right-color
127
+ - border-bottom-color
128
+ - border-left-color
129
+ -
130
+ - border-style
131
+ - border-top-style
132
+ - border-right-style
133
+ - border-bottom-style
134
+ - border-left-style
135
+ -
136
+ - border-width
137
+ - border-top-width
138
+ - border-right-width
139
+ - border-bottom-width
140
+ - border-left-width
141
+ -
142
+ - border-radius
143
+ - border-top-right-radius
144
+ - border-bottom-right-radius
145
+ - border-bottom-left-radius
146
+ - border-top-left-radius
147
+ - border-radius-topright
148
+ - border-radius-bottomright
149
+ - border-radius-bottomleft
150
+ - border-radius-topleft
151
+ -
152
+ - box-shadow
153
+
154
+ SelectorFormat:
155
+ enabled: true
156
+ convention: hyphenated_BEM
157
+
158
+ SingleLinePerSelector:
159
+ enabled: false
160
+
161
+ SpaceAfterPropertyColon:
162
+ enabled: true
163
+ style: at_least_one_space
164
+
165
+ SpaceBeforeBrace:
166
+ enabled: true
167
+ style: space
168
+ allow_single_line_padding: true
169
+
170
+ VariableForProperty:
171
+ enabled: true
172
+ properties:
173
+ - color
174
+ - font-family
175
+ - background-color
176
+
177
+ # These default settings may be problematic to implementors. They are not
178
+ # ommitted so that they may be adjusted as needed during an implementation.
179
+ #
180
+ # For documentation:
181
+ # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md
182
+
183
+ DuplicateProperty:
184
+ enabled: true
185
+
186
+ PropertySpelling:
187
+ enabled: true
188
+ extra_properties: [] # Add experimental CSS to this array, if needed
data/CHANGELOG.md ADDED
@@ -0,0 +1,244 @@
1
+ Workarea Mail Chimp 3.0.2 (2019-08-21)
2
+ --------------------------------------------------------------------------------
3
+
4
+ * Open Source!
5
+
6
+
7
+
8
+ Workarea Mail Chimp 3.0.1 (2018-09-19)
9
+ --------------------------------------------------------------------------------
10
+
11
+ * Pass default group as first element of an array of groups
12
+
13
+ MAILCHIMP-13
14
+ Jake Beresford
15
+
16
+ * Use safe navigation operator to update attributes on user if present, and proceed if user was removed
17
+
18
+ * Fixes failing test Workarea::Admin::EmailSignupsIntegrationTest#test_destroy
19
+
20
+ MAILCHIMP-14
21
+ Jake Beresford
22
+
23
+ * Guard against nil default_group in subscribe argument builder
24
+
25
+ * Refactor code to remove unnecessary argument passing
26
+
27
+ MAILCHIMP-13
28
+ Jake Beresford
29
+
30
+ * Strip invalid characters from interest when building checkbox ID
31
+
32
+ * Fixes bug where checkboxes cannot be selected due to presence of invalid characters.
33
+
34
+ MAILCHIMP-12
35
+ Jake Beresford
36
+
37
+
38
+
39
+ Workarea Mail Chimp v3.0.0 (2018-03-06)
40
+ --------------------------------------------------------------------------------
41
+
42
+ * Correct gemserver credentials in release task
43
+
44
+ Jake Beresford
45
+
46
+ * Update User.email_signup in unsubscribe callback worker
47
+
48
+ MAILCHIMP-6
49
+ Jake Beresford
50
+
51
+ * Unsubscribe from mailchimp should unsignup email address in Workarea
52
+
53
+ * Additional UI for unsubscribing is unnecessary, should use existing UI and user#update logic.
54
+ * Use a callback worker to perform ListUnsubscriber job on Email::Signup destroy
55
+ * Remove redundant Mailchimp controller, unsubscribe action, and route
56
+
57
+ MAILCHIMP-6
58
+ Jake Beresford
59
+
60
+ * Reconcile existing Email signup when creating a new account
61
+
62
+ MAILCHIMP-7
63
+ Jake Beresford
64
+
65
+ * Fix checking equity between 2 group objects
66
+
67
+ Some of this code was removed during the v3 compatibility upgrade, this caused a bug with editing preferences in the user account.
68
+
69
+ * Re-write == method for groups, reduce complexity of this function to make it more readable
70
+ * Iterate over all group interests and compare to current_user groups
71
+ * Add SubscriptionEdit callback worker to update Mailchimp with changes to groups
72
+ * Do not enqueue worker unless user is subscribed to emails
73
+ * Update decorated email_signup? method to call super
74
+
75
+ MAILCHIMP-5
76
+ Jake Beresford
77
+
78
+ * Account footer subscription should include all interest groups
79
+
80
+ * If a user isn't passed, merge all groups in to the subscribe arguments
81
+ * Add unit test for subscription interest groups
82
+ * Update VCR casettes
83
+
84
+ Unrelated changes:
85
+ * Add instructions to get list & list preference IDs from mailchimp to README
86
+
87
+ MAILCHIMP-4
88
+ Jake Beresford
89
+
90
+ * Fix error on account creation
91
+
92
+ Account creation triggers the list_subscriber job, account_created_email_subscriber was redundant and causing the UserAlreadySubscribed to be raised.
93
+
94
+ * Workarea will not allow multiple Email::Subscriptions to save, removed custom error as it is also redundant.
95
+ * Rubocop wanted some love
96
+
97
+ MAILCHIMP-3
98
+ Jake Beresford
99
+
100
+ * * Allow sidekiq retry for all workers * Raise custom error if a user is already subscribed
101
+
102
+ MAILCHIMP-1
103
+ Jake Beresford
104
+
105
+ * Remove eql method from MailChimp::Group
106
+
107
+ * Method was not necessary and could cause unwanted side-effects
108
+
109
+ MAILCHIMP-1
110
+ Jake Beresford
111
+
112
+ * Use bogus gateway and remove conditions to check for gateway presence
113
+
114
+ MAILCHIMP-1
115
+ Jake Beresford
116
+
117
+ * Compose all interests from all groups for user
118
+
119
+ MAILCHIMP-1
120
+ Jake Beresford
121
+
122
+ * Fix implementation of user_params to correctly apply group interests
123
+
124
+ Jake Beresford
125
+
126
+ * Use ignore_if to prevent sidekiq job being enqueued if it should not be performed.
127
+
128
+ MAILCHIMP-1
129
+ Jake Beresford
130
+
131
+ * Merge user account permitted params with super
132
+
133
+ MAILCHIMP-1
134
+ Jake Beresford
135
+
136
+ * Upgrade for v3 compatibility
137
+
138
+ * Rename to workarea & storefront
139
+ * Convert decorators into .decorator files
140
+ * Convert rspec to minitest
141
+ * Add test/dummy and test_helper
142
+ * Add bin/rails
143
+ * Add dotfiles
144
+ * Install rubocop and get all cops passing with rails defaults
145
+ * remove some redundant files
146
+ * before_filter -> before_action
147
+ * Loosen version dependency on workarea
148
+ * Cleanup redundant airbrake notifications
149
+ * move appends to initializer
150
+ * Update markup of user account views & add translations to storefront
151
+ * Use email_signup instead of email_subscribe to match user model
152
+ * Add callback worker for email subscription on account creation
153
+ * Move unsubscriber action to mail chimp controller and update user account page UI to make more sense
154
+ * Get default preferences working properly
155
+ * Update where email interest groups are displayed for proximity to edit interface
156
+ * Fix incorrect hash property accessors in group.rb
157
+ * Set default_groups to empty array if no gateway is defined, like in test
158
+
159
+ MAILCHIMP-1
160
+ Jake Beresford
161
+
162
+
163
+
164
+ Workarea Mail Chimp v2.0.2 (2016-06-28)
165
+ --------------------------------------------------------------------------------
166
+
167
+ * Minor Mailchimp tweaks to workaround unavoidable errors
168
+
169
+ Add 500 and 400 to acceptable error codes and set retries to false for the workers
170
+ Refactor the listener for Email::Signups to work properly
171
+ David Freiman
172
+
173
+
174
+
175
+ Workarea Mail Chimp v2.0.1 (2016-04-29)
176
+ --------------------------------------------------------------------------------
177
+
178
+ * Bugfix callback ensures it has valid data
179
+
180
+ Bump version and better syntax
181
+ David Freiman
182
+
183
+
184
+
185
+ Workarea Mail Chimp v2.0.0 (2016-04-26)
186
+ --------------------------------------------------------------------------------
187
+
188
+ * Update Rakefile to reflect the standard
189
+
190
+ Remove strict version dependancy on Gibbon
191
+ David Freiman
192
+
193
+ * Mailchimp Engine upgrade to MC API3
194
+
195
+ Change api adapter to use Gibbon instead of Feralchimp and update dependencies
196
+ Need to modify the gateway to call specific http methods on the wrapper. Began with modifying the lists
197
+ and members gateways. Still much modification to be done but proof of concept with subscribe, unsubscribe
198
+ and fetch single member details already complete
199
+
200
+ Update gateway to V3 API - all specs passing
201
+
202
+ Need to ensure workflow works with groups
203
+ Changed all api calls to go through the perform request as an output point
204
+ added spec to ensure the lists interests function is working
205
+ lists interests needs two calls - one to get all categories, another to get details of each category
206
+
207
+ Rework Error handling
208
+
209
+ Only raise error for unacceptable errors - 404s should return an error hash
210
+ Update specs to use expect syntax instead of should
211
+ all tests passing
212
+
213
+ Mailchimp Listener Fixes
214
+
215
+ Refactor listener to work with updated flow, and send the proper subscribe, unsubscribe info
216
+ Rework partials to display on the correct append points
217
+ update readme
218
+ all specs passing
219
+
220
+ Update subscribe call to pass proper name fields
221
+
222
+ Modified doubles in the spec to use the proper format and fields sent to v3 api are slightly different.
223
+
224
+ Mailchimp interests now sending succesfully
225
+
226
+ limitation - not sending when a user's interests are modified only when the interest itself is modified
227
+ Refactored groups to store interests as a hash and modified all mock data accordingly
228
+ Sending interests to MC in updated API v3 requires sending interest_id so updated the builder to handle that logic
229
+ All tests passing
230
+
231
+ Mailchimp interest integration updates
232
+
233
+ allowed a user to modify their interests and have deselected interest reflect in mailchimp
234
+ currently not firing when interests changed, only when user is updated
235
+
236
+ updated code style to match tailor standards
237
+
238
+ Interests sending on update
239
+
240
+ update to ensure interests send whenever a user is updated
241
+ remove old code from builders where unneccessary
242
+
243
+ Update Return value of lists to return empty array in case of error
244
+ David Freiman