diff --git a/apps/client/src/main.ts b/apps/client/src/main.ts index c15703645..2b916315b 100644 --- a/apps/client/src/main.ts +++ b/apps/client/src/main.ts @@ -1,6 +1,7 @@ import { InfoResponse } from '@ghostfolio/common/interfaces'; import { filterGlobalPermissions } from '@ghostfolio/common/permissions'; import { GfNotificationModule } from '@ghostfolio/ui/notifications'; +import { GF_ENVIRONMENT } from '@ghostfolio/ui/tokens'; import { Platform } from '@angular/cdk/platform'; import { @@ -89,6 +90,10 @@ import { environment } from './environments/environment'; provide: DateAdapter, useClass: CustomDateAdapter }, + { + provide: GF_ENVIRONMENT, + useValue: environment + }, { provide: MAT_DATE_FORMATS, useValue: DateFormats diff --git a/libs/ui/src/lib/services/admin.service.ts b/libs/ui/src/lib/services/admin.service.ts index a5f2ca24f..a5e661e85 100644 --- a/libs/ui/src/lib/services/admin.service.ts +++ b/libs/ui/src/lib/services/admin.service.ts @@ -22,22 +22,22 @@ import { } from '@ghostfolio/common/interfaces'; import { DateRange } from '@ghostfolio/common/types'; import { DataService } from '@ghostfolio/ui/services'; +import { GfEnvironment, GF_ENVIRONMENT } from '@ghostfolio/ui/tokens'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; -import { Injectable } from '@angular/core'; +import { Inject, Injectable } from '@angular/core'; import { SortDirection } from '@angular/material/sort'; import { DataSource, MarketData, Platform } from '@prisma/client'; import { JobStatus } from 'bull'; -import { environment } from '../../environments/environment'; - @Injectable({ providedIn: 'root' }) export class AdminService { public constructor( private dataService: DataService, - private http: HttpClient + private http: HttpClient, + @Inject(GF_ENVIRONMENT) private environment: GfEnvironment ) {} public addAssetProfile({ dataSource, symbol }: AssetProfileIdentifier) { @@ -124,7 +124,7 @@ export class AdminService { }); return this.http.get( - `${environment.production ? 'https://ghostfol.io' : ''}/api/v2/data-providers/ghostfolio/status`, + `${this.environment.production ? 'https://ghostfol.io' : ''}/api/v2/data-providers/ghostfolio/status`, { headers } ); } diff --git a/libs/ui/src/lib/tokens/env.token.ts b/libs/ui/src/lib/tokens/env.token.ts new file mode 100644 index 000000000..b717b212d --- /dev/null +++ b/libs/ui/src/lib/tokens/env.token.ts @@ -0,0 +1,11 @@ +import { InjectionToken } from '@angular/core'; + +export interface GfEnvironment { + lastPublish: string | null; + production: boolean; + stripePublicKey: string; +} + +export const GF_ENVIRONMENT = new InjectionToken( + 'GF_ENVIRONMENT' +); diff --git a/libs/ui/src/lib/tokens/index.ts b/libs/ui/src/lib/tokens/index.ts new file mode 100644 index 000000000..c9dab8e0e --- /dev/null +++ b/libs/ui/src/lib/tokens/index.ts @@ -0,0 +1 @@ +export * from './env.token';