| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /* eslint-disable
- max-len,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- import { captureException } from '../infrastructure/error-reporter'
- const app = angular.module('ErrorCatcher', [])
- const UNHANDLED_REJECTION_ERR_MSG = 'Possibly unhandled rejection: canceled'
- app.config([
- '$provide',
- $provide =>
- $provide.decorator('$exceptionHandler', [
- '$log',
- '$delegate',
- ($log, $delegate) =>
- function (exception, cause) {
- if (
- exception === UNHANDLED_REJECTION_ERR_MSG &&
- cause === undefined
- ) {
- return
- }
- captureException(exception, {
- tags: {
- handler: 'angular-exception-handler',
- },
- })
- return $delegate(exception, cause)
- },
- ]),
- ])
- // Interceptor to check auth failures in all $http requests
- // http://bahmutov.calepin.co/catch-all-errors-in-angular-app.html
- app.factory('unAuthHttpResponseInterceptor', ($q, $location) => ({
- responseError(response) {
- // redirect any unauthorised or forbidden responses back to /login
- //
- // set disableAutoLoginRedirect:true in the http request config
- // to disable this behaviour
- if (
- [401, 403].includes(response.status) &&
- !(response.config != null
- ? response.config.disableAutoLoginRedirect
- : undefined)
- ) {
- // for /project urls set the ?redir parameter to come back here
- // otherwise just go to the login page
- if (window.location.pathname.match(/^\/project/)) {
- window.location = `/login?redir=${encodeURI(window.location.pathname)}`
- } else {
- window.location = '/login'
- }
- }
- // pass the response back to the original requester
- return $q.reject(response)
- },
- }))
- app.config([
- '$httpProvider',
- $httpProvider =>
- $httpProvider.interceptors.push('unAuthHttpResponseInterceptor'),
- ])
|