(function () { "use strict"; var ResetPassword = function ($scope, userService, $routeParams) { $scope.model = { password: '', confirmPassword: '', submitted: false }; if (!$routeParams.token) { $scope.invalidToken = true; } else { userService.validateToken($routeParams.token).then(function (result) { if (result) { $scope.token = $routeParams.token; } else { $scope.invalidToken = true; $scope.errorMessage = "Your token is expired or invalid. Please reset your password again."; } }); } $scope.update = function () { const error = "A password must be at least 6 characters, an upper case, a lower case, a numeric digit, and a special character."; const notMatching = "Passwords do not match."; $scope.model.submitted = true; $scope.errorMessage = null; if (!testPassword($scope.model.password)) { $scope.errorMessage = error; } else if ($scope.model.password !== $scope.model.confirmPassword) { $scope.errorMessage = null; } else { $('.upload').show(); userService.resetPassword($scope.model.password, $scope.model.confirmPassword, $scope.token).then(function (message) { $('.upload').hide(); $scope.message = message; $scope.success = true; }).catch(response => { $scope.errorMessage = error; $('.upload').hide(); }); } }; function testPassword(password) { if (!password || password.length < 6) return false; var regex = RegExp('(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\\W)'); return regex.test(password); } }; ResetPassword.$inject = ['$scope', 'userService', '$routeParams']; angular.module('streamApp').controller('resetPasswordController', ResetPassword); })();