Browse Source

add error handler service for sessions

pull/19650/head
Sinan997 2 years ago
parent
commit
8139d3c85d
  1. 6
      npm/ng-packs/packages/theme-shared/src/lib/providers/error-handlers.provider.ts
  2. 30
      npm/ng-packs/packages/theme-shared/src/lib/services/session-error-handler.service.ts
  3. 2
      npm/ng-packs/packages/theme-shared/src/lib/services/status-code-error-handler.service.ts

6
npm/ng-packs/packages/theme-shared/src/lib/providers/error-handlers.provider.ts

@ -4,6 +4,7 @@ import { TenantResolveErrorHandlerService } from '../services/tenant-resolve-err
import { AbpFormatErrorHandlerService } from '../services/abp-format-error-handler.service';
import { StatusCodeErrorHandlerService } from '../services/status-code-error-handler.service';
import { UnknownStatusCodeErrorHandlerService } from '../services/unknown-status-code-error-handler.service';
import { AbpSessionErrorHandlerService } from '../services/session-error-handler.service';
export const DEFAULT_HANDLERS_PROVIDERS: Provider[] = [
{
@ -26,4 +27,9 @@ export const DEFAULT_HANDLERS_PROVIDERS: Provider[] = [
multi: true,
useExisting: UnknownStatusCodeErrorHandlerService,
},
{
provide: CUSTOM_ERROR_HANDLERS,
multi: true,
useExisting: AbpSessionErrorHandlerService,
},
];

30
npm/ng-packs/packages/theme-shared/src/lib/services/session-error-handler.service.ts

@ -0,0 +1,30 @@
import { inject, Injectable } from '@angular/core';
import { AuthService } from '@abp/ng.core';
import { HttpErrorResponse } from '@angular/common/http';
import { getErrorFromRequestBody } from '../utils/error.utils';
import { CustomHttpErrorHandlerService } from '../models/common';
import { ConfirmationService } from '../services/confirmation.service';
import { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY } from '../constants/default-errors';
@Injectable({ providedIn: 'root' })
export class AbpSessionErrorHandlerService implements CustomHttpErrorHandlerService {
readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.high;
private authService = inject(AuthService);
canHandle(error: unknown): boolean {
console.log(error);
debugger;
if (
error instanceof HttpErrorResponse &&
error.headers.get('expires') &&
error.headers.get('pragma')
) {
return true;
}
return false;
}
execute() {
this.authService.logout();
}
}

2
npm/ng-packs/packages/theme-shared/src/lib/services/status-code-error-handler.service.ts

@ -91,8 +91,6 @@ export class StatusCodeErrorHandlerService implements CustomHttpErrorHandlerServ
this.showConfirmation(title, message).subscribe();
break;
case 403:
this.authService.logout();
break;
case 500:
this.showPage();
break;

Loading…
Cancel
Save