Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Commit a7892a8

Browse files
author
vikasrohit
committed
AS#131482348128949, Refactor Mailchimp API wrapper to be generic user preferences service
-- Adapted calling code for express based preference API
1 parent 53bfec8 commit a7892a8

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

app/services/userPreferences.service.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import angular from 'angular'
2020
mailchimpApi.one('users', user.userId)
2121
.one('preferences', 'email').get()
2222
.then(function(resp) {
23-
resolve(resp)
23+
resolve(resp.subscriptions)
2424
})
2525
.catch(function(err) {
2626
if (err.status === 404) {
@@ -42,21 +42,20 @@ import angular from 'angular'
4242

4343
function saveEmailPreferences(user, preferences) {
4444
var settings = {
45-
userId: user.userId,
4645
firstName: user.firstName,
4746
lastName: user.lastName,
4847
subscriptions: {}
4948
}
5049
if (!preferences) {
51-
settings.subscriptions[CONSTANTS.MAILCHIMP_NL_GEN] = true
50+
settings.subscriptions['TOPCODER_NL_GEN'] = true
5251
} else {
5352
settings.subscriptions = preferences
5453
}
5554
return $q(function(resolve, reject) {
5655
mailchimpApi.one('users', user.userId)
57-
.customPUT(settings, 'preferences/email')
56+
.customPUT({ param: settings }, 'preferences/email')
5857
.then(function(resp) {
59-
resolve(resp)
58+
resolve(resp.subscriptions)
6059
})
6160
.catch(function(err) {
6261
logger.error('Error adding member to subscription list', err)

app/settings/email/email.controller.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,24 +68,30 @@ import angular from 'angular'
6868
if (!subscription) {
6969
// add member to the list with default preferences
7070
UserPreferencesService.saveEmailPreferences(userData).then(function(resp) {
71-
logger.debug(resp)
71+
logger.debug(JSON.stringify(resp))
72+
validateState(resp)
73+
7274
}).catch(function(err) {
7375
// no error to user
7476
//TODO some error alert to community admin
7577
logger.debug('error in adding user to member list')
7678
})
7779
} else {
7880
if (subscription) {
79-
vm.newsletters.forEach(function(newsletter) {
80-
if (subscription[newsletter.id]) {
81-
newsletter.enabled = true
82-
}
83-
})
81+
validateState(subscription)
8482
}
8583
}
8684
})
8785
}
8886

87+
function validateState(subscription) {
88+
vm.newsletters.forEach(function(newsletter) {
89+
if (subscription[newsletter.id]) {
90+
newsletter.enabled = true
91+
}
92+
})
93+
}
94+
8995
function isDirty() {
9096
var dirty = false
9197
vm.newsletters.forEach(function(newsletter) {

0 commit comments

Comments
 (0)