Fix and refactor emailService for notifications by email

This commit is contained in:
Gustavo Maximiliano Cortez 2017-05-14 19:21:12 -03:00
commit 3700845449
No known key found for this signature in database
GPG key ID: 15EDAD8D9F2EB1AF
5 changed files with 72 additions and 64 deletions

View file

@ -1,6 +1,6 @@
'use strict';
angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $log, $timeout, $http, $httpParamSerializer, $ionicConfig, profileService, configService, walletService, appConfigService) {
angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $log, $timeout, $http, $httpParamSerializer, $ionicConfig, profileService, configService, walletService, appConfigService, emailService) {
var wallet, walletId;
$scope.data = {};
@ -48,22 +48,18 @@ angular.module('copayApp.controllers').controller('collectEmailController', func
};
$scope.save = function() {
var opts = {
emailFor: {}
};
opts.emailFor[walletId] = $scope.data.email;
walletService.updateRemotePreferences(wallet, {
email: $scope.data.email,
}, function(err) {
if (err) return;
configService.set(opts, function(err) {
if (err) $log.warn(err);
if ($scope.data.accept) collectEmail();
$timeout(function() {
$scope.goNextView();
}, 200);
});
var enabled = true; // Set enabled email: true
emailService.updateEmail({
enabled: enabled,
email: enabled ? $scope.data.email : null
});
if ($scope.data.accept) collectEmail();
$timeout(function() {
$scope.goNextView();
}, 200);
};
$scope.goNextView = function() {

View file

@ -1,6 +1,6 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesNotificationsController', function($scope, $log, $timeout, appConfigService, lodash, configService, platformInfo, pushNotificationsService, profileService, emailService) {
angular.module('copayApp.controllers').controller('preferencesNotificationsController', function($scope, $log, $timeout, appConfigService, lodash, configService, platformInfo, pushNotificationsService, emailService) {
var updateConfig = function() {
var config = configService.getSync();
$scope.appName = appConfigService.nameCase;
@ -13,7 +13,7 @@ angular.module('copayApp.controllers').controller('preferencesNotificationsContr
};
$scope.latestEmail = {
value: getLatestEmailConfig()
value: emailService.getEmailIfEnabled()
};
$scope.newEmail = lodash.clone($scope.latestEmail);
@ -44,33 +44,19 @@ angular.module('copayApp.controllers').controller('preferencesNotificationsContr
$scope.emailNotificationsChange = function() {
var opts = {
emailNotifications: {
enabled: $scope.emailNotifications.value
}
enabled: $scope.emailNotifications.value,
email: $scope.newEmail.value
};
configService.set(opts, function(err) {
if (err) $log.debug(err);
});
$scope.latestEmail = {
value: getLatestEmailConfig()
value: emailService.getEmailIfEnabled()
};
$scope.newEmail = lodash.clone($scope.latestEmail);
if (!$scope.emailNotifications.value) {
emailService.enableEmailNotifications({
enabled: $scope.emailNotifications.value,
email: null
});
}
$timeout(function() {
$scope.$apply();
});
emailService.updateEmail(opts);
};
$scope.save = function() {
emailService.enableEmailNotifications({
emailService.updateEmail({
enabled: $scope.emailNotifications.value,
email: $scope.newEmail.value
});
@ -84,11 +70,6 @@ angular.module('copayApp.controllers').controller('preferencesNotificationsContr
});
};
function getLatestEmailConfig() {
var config = configService.getSync();
return config.emailFor ? lodash.values(config.emailFor)[0] : null;
};
$scope.$on("$ionicView.enter", function(event, data) {
updateConfig();
});