From b268c037f830c114a1a2ee6f247ac5521bec1b3a Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Mon, 25 Dec 2023 16:13:39 +0300 Subject: [PATCH] fix abstract class variable's accessor & improve error message --- .../src/lib/abstracts/auth-error-filter.ts | 20 +++++++++++------ .../core/src/lib/models/auth-events.ts | 22 +++++++------------ .../services/oauth-error-filter.service.ts | 14 +++++------- 3 files changed, 26 insertions(+), 30 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/abstracts/auth-error-filter.ts b/npm/ng-packs/packages/core/src/lib/abstracts/auth-error-filter.ts index 449622e144..45f24161eb 100644 --- a/npm/ng-packs/packages/core/src/lib/abstracts/auth-error-filter.ts +++ b/npm/ng-packs/packages/core/src/lib/abstracts/auth-error-filter.ts @@ -2,8 +2,8 @@ import { signal } from '@angular/core'; import { AuthErrorEvent, AuthErrorFilter } from '../models'; export abstract class AbstractAuthErrorFilter { - readonly #filters = signal>([]); - filters = this.#filters.asReadonly(); + protected readonly _filters = signal>([]); + readonly filters = this._filters.asReadonly(); abstract get(id: string): T; abstract add(filter: T): void; @@ -16,19 +16,25 @@ export class AuthErrorFilterService< T = AuthErrorEvent, E = AuthErrorFilter, > extends AbstractAuthErrorFilter { + private warningMessage() { + console.error('You should add @abp/ng-oauth packages or create your own auth packages.'); + } + get(id: string): T { - throw new Error('Import AbpOAuthModule from @abp/ng.oauth or custom implementation'); + this.warningMessage(); + throw new Error('not implemented'); } add(filter: T): void { - throw new Error('Import AbpOAuthModule from @abp/ng.oauth or custom implementation'); + this.warningMessage(); } patch(item: Partial): void { - throw new Error('Import AbpOAuthModule from @abp/ng.oauth or custom implementation'); + this.warningMessage(); } remove(id: string): void { - throw new Error('Import AbpOAuthModule from @abp/ng.oauth or custom implementation'); + this.warningMessage(); } run(event: E): boolean { - throw new Error('Import AbpOAuthModule from @abp/ng.oauth or custom implementation'); + this.warningMessage(); + throw new Error('not implemented'); } } diff --git a/npm/ng-packs/packages/core/src/lib/models/auth-events.ts b/npm/ng-packs/packages/core/src/lib/models/auth-events.ts index e83fc7dd27..4b9e49eb0d 100644 --- a/npm/ng-packs/packages/core/src/lib/models/auth-events.ts +++ b/npm/ng-packs/packages/core/src/lib/models/auth-events.ts @@ -26,35 +26,29 @@ export type EventType = | 'token_revoke_error'; export abstract class AuthEvent { - readonly type: EventType; - constructor(type: EventType) { + constructor(public readonly type: EventType) { this.type = type; } } export class AuthSuccessEvent extends AuthEvent { - readonly info: any; - constructor(type: EventType, info?: any) { + constructor(public readonly type: EventType, public readonly info?: any) { super(type); - this.info = info; } } export class AuthInfoEvent extends AuthEvent { - readonly info: any; - - constructor(type: EventType, info?: any) { + constructor(public readonly type: EventType, public readonly info?: any) { super(type); - this.info = info; } } export class AuthErrorEvent extends AuthEvent { - readonly reason: object; - readonly params: object; - constructor(type: EventType, reason: object, params?: object) { + constructor( + public readonly type: EventType, + public readonly reason: object, + public readonly params?: object, + ) { super(type); - this.reason = reason; - this.params = params; } } diff --git a/npm/ng-packs/packages/oauth/src/lib/services/oauth-error-filter.service.ts b/npm/ng-packs/packages/oauth/src/lib/services/oauth-error-filter.service.ts index bcd048064f..cd3e60eaaf 100644 --- a/npm/ng-packs/packages/oauth/src/lib/services/oauth-error-filter.service.ts +++ b/npm/ng-packs/packages/oauth/src/lib/services/oauth-error-filter.service.ts @@ -1,22 +1,18 @@ -import { AbstractAuthErrorFilter, AuthErrorFilter } from '@abp/ng.core'; -import { Injectable, signal } from '@angular/core'; +import { Injectable } from '@angular/core'; import { OAuthErrorEvent } from 'angular-oauth2-oidc'; +import { AbstractAuthErrorFilter, AuthErrorFilter } from '@abp/ng.core'; @Injectable({ providedIn: 'root' }) export class OAuthErrorFilterService extends AbstractAuthErrorFilter< AuthErrorFilter, OAuthErrorEvent > { - readonly #filters = signal>>([]); - - filters = this.#filters.asReadonly(); - get(id: string): AuthErrorFilter { - return this.#filters().find(({ id: _id }) => _id === id); + return this._filters().find(({ id: _id }) => _id === id); } add(filter: AuthErrorFilter): void { - this.#filters.update(items => [...items, filter]); + this._filters.update(items => [...items, filter]); } patch(item: Partial>): void { @@ -34,7 +30,7 @@ export class OAuthErrorFilterService extends AbstractAuthErrorFilter< return; } - this.#filters.update(items => items.filter(({ id: _id }) => _id !== id)); + this._filters.update(items => items.filter(({ id: _id }) => _id !== id)); } run(event: OAuthErrorEvent): boolean {