workarea-mail_chimp 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
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