client-ui
Version:
Testing implementation of nodeJs Backend, angular frontend, and hopefully in a way that this can be deployed to s3/cloudfront
99 lines (92 loc) • 4.11 kB
JavaScript
(function () {
'use strict';
angular.module(moduleName).controller('knowledgeAssessmentController', knowledgeAssessmentController);
knowledgeAssessmentController.$inject = ['loan', 'client', '$state', 'equifax'];
function knowledgeAssessmentController(loanService, clientService, $state, equifax) {
var self = this;
self.getQuizQuestions = getQuizQuestions;
self.submitQuizForm = submitQuizForm;
self.quizzes = 0;
self.quizObj = false;
self.showSpinner = false;
self.errorMessage = false;
function getQuizQuestions() {
var clientObj = clientService.getClientStore();
self.KBAsAccepted = clientObj.KBAsAccepted;
if (!clientObj.KBAsAccepted) {
self.showSpinner = true;
equifax.getQuizQuestions(clientObj.clientId)
.then(function (response) {
handleResponse(response);
}, function (errorResponse) {
handleResponse(errorResponse);
});
}
}
function submitQuizForm() {
self.showSpinner = true;
var clientObj = clientService.getClientStore();
equifax.sendQuizResponse(clientObj.clientId, self.quizObj)
.then(function (response) {
handleResponse(response);
}, function (errorResponse) {
handleResponse(errorResponse);
});
}
function handleResponse(response) {
self.showSpinner = false;
if (response.hasOwnProperty("code")) {
switch (response.code) {
case "PREEXISTING_KBAS":
self.showSpinner = true;
clientService.getClient()
.then(function (client) {
if (client.KBAsAccepted) {
self.showSpinner = false;
$state.go(loanService.getNextStep());
} else {
self.showSpinner = false;
$state.go("sorry");
}
}, function (error) {
self.showSpinner = false;
$state.go("sorry");
});
break;
case "CONTACT_US":
$state.go("sorry", {reasons: ["CONTACT_US"]});
break;
case "COMPLETE":
self.showSpinner = true;
clientService.setClientStore(response.data);
//this loan refresh here helps for when loading the income summary pages
loanService.refreshCurrentLoanFromDB()
.then(function (loan) {
self.showSpinner = false;
$state.go(loanService.getNextStep());
}, function (errorResponse) {
self.showSpinner = false;
$state.go("sorry");
});
break;
case "QUIZ":
resetForm();
self.quizObj = response.data;
self.quizzes++;
break;
default:
$state.go("sorry", {reasons: [response.code]});
break;
}
} else {
$state.go("sorry");
}
}
function resetForm() {
if (self.kbaform
&& self.kbaform.hasOwnProperty("$setPristine")) {
self.kbaform["$setPristine"]();
}
}
}
})();