client-ui
Version:
Testing implementation of nodeJs Backend, angular frontend, and hopefully in a way that this can be deployed to s3/cloudfront
50 lines (45 loc) • 1.69 kB
JavaScript
/* global angular moduleName */
(function () {
"use strict";
function errorHandlerService($state, store) {
var self = this;
function checkSorry(error, options, callback) {
if(typeof callback === "undefined") {
callback = options;
options = {};
}
if(typeof error === "object"
&& error.hasOwnProperty("denialReasons")
&& Object.prototype.toString.call(error.denialReasons) === "[object Array]" ) {
var reasons = [];
for (var i = 0; i < error.denialReasons.length; i++) {
reasons.push(error.denialReasons[i]);
}
$state.go("sorry", {reasons: reasons});
} else {
return callback();
}
}
function handleError(error, options, callback) {
if (typeof callback === "undefined") {
callback = options;
options = {};
}
if (error
&& typeof error === "object"
&& error.hasOwnProperty("code")) {
$state.go("sorry", {reasons: [error.code]});
} else {
if (options.hasOwnProperty("fallback")) {
$state.go("sorry", {reasons: [options.fallback]});
} else {
$state.go("sorry");
}
}
}
self.handleError = handleError;
self.checkSorry = checkSorry;
}
angular.module(moduleName).service("errorHandler", errorHandlerService);
errorHandlerService.$inject = ["$state", "aiStorage"];
}());