Browse Source

converted timezone interceptor to use function interceptor api

feature/ssr-migration-schematic
erdemcaygor 1 year ago
parent
commit
9f60c9d147
  1. 41
      npm/ng-packs/packages/core/src/lib/interceptors/timezone.interceptor.ts
  2. 10
      npm/ng-packs/packages/core/src/lib/providers/core-module-config.provider.ts

41
npm/ng-packs/packages/core/src/lib/interceptors/timezone.interceptor.ts

@ -1,26 +1,23 @@
import { inject, Injectable } from '@angular/core';
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
import { inject } from '@angular/core';
import { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';
import { TimezoneService } from '../services';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root',
})
export class TimezoneInterceptor implements HttpInterceptor {
protected readonly timezoneService = inject(TimezoneService);
export const timezoneInterceptor: HttpInterceptorFn = (
req: HttpRequest<any>,
next: HttpHandlerFn,
) => {
const timezoneService = inject(TimezoneService);
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (!this.timezoneService.isUtcClockEnabled) {
return next.handle(req);
}
const timezone = this.timezoneService.timezone;
if (timezone) {
req = req.clone({
setHeaders: {
__timezone: timezone,
},
});
}
return next.handle(req);
if (!timezoneService.isUtcClockEnabled) {
return next(req);
}
}
const timezone = timezoneService.timezone;
if (timezone) {
req = req.clone({
setHeaders: {
__timezone: timezone,
},
});
}
return next(req);
};

10
npm/ng-packs/packages/core/src/lib/providers/core-module-config.provider.ts

@ -1,7 +1,6 @@
import { makeEnvironmentProviders, Provider, inject, provideAppInitializer } from '@angular/core';
import { TitleStrategy } from '@angular/router';
import {
HTTP_INTERCEPTORS,
provideHttpClient,
withFetch,
withInterceptors,
@ -27,7 +26,7 @@ import { DEFAULT_DYNAMIC_LAYOUTS } from '../constants';
import { LocalizationService, LocalStorageListenerService, AbpTitleStrategy } from '../services';
import { DefaultQueueManager, getInitialData, localeInitializer } from '../utils';
import { CookieLanguageProvider, IncludeLocalizationResourcesProvider, LocaleProvider } from './';
import { TimezoneInterceptor, transferStateInterceptor } from '../interceptors';
import { timezoneInterceptor, transferStateInterceptor } from '../interceptors';
export enum CoreFeatureKind {
Options,
@ -108,7 +107,7 @@ export function provideAbpCore(...features: CoreFeature<CoreFeatureKind>[]) {
headerName: 'RequestVerificationToken',
}),
withFetch(),
withInterceptors([transferStateInterceptor]),
withInterceptors([transferStateInterceptor, timezoneInterceptor]),
),
provideAppInitializer(() => {
getInitialData();
@ -134,11 +133,6 @@ export function provideAbpCore(...features: CoreFeature<CoreFeatureKind>[]) {
provide: TitleStrategy,
useExisting: AbpTitleStrategy,
},
{
provide: HTTP_INTERCEPTORS,
useClass: TimezoneInterceptor,
multi: true,
},
];
for (const feature of features) {

Loading…
Cancel
Save