Browse Source

Refactoring

pull/7056/head
Thomas Kaul 4 weeks ago
parent
commit
6408378787
  1. 2
      apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
  2. 2
      libs/common/src/lib/helper.ts
  3. 5
      libs/ui/src/lib/assistant/assistant.component.ts
  4. 44
      libs/ui/src/lib/services/admin.service.ts
  5. 37
      libs/ui/src/lib/services/data.service.ts

2
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts

@ -375,7 +375,7 @@ export class GfAdminMarketDataComponent implements AfterViewInit, OnInit {
this.selection.clear();
this.adminService
this.dataService
.fetchAssetProfiles({
sortColumn,
sortDirection,

2
libs/common/src/lib/helper.ts

@ -44,8 +44,8 @@ import {
ghostfolioScraperApiSymbolPrefix
} from './config';
import {
AssetProfileItem,
AssetProfileIdentifier,
AssetProfileItem,
Benchmark
} from './interfaces';
import { BenchmarkTrend, ColorScheme } from './types';

5
libs/ui/src/lib/assistant/assistant.component.ts

@ -3,7 +3,7 @@ import { Filter, PortfolioPosition, User } from '@ghostfolio/common/interfaces';
import { InternalRoute } from '@ghostfolio/common/routes/interfaces/internal-route.interface';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { AccountWithPlatform, DateRange } from '@ghostfolio/common/types';
import { AdminService, DataService } from '@ghostfolio/ui/services';
import { DataService } from '@ghostfolio/ui/services';
import { FocusKeyManager } from '@angular/cdk/a11y';
import {
@ -155,7 +155,6 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit {
private preselectionTimeout: ReturnType<typeof setTimeout>;
public constructor(
private adminService: AdminService,
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
private destroyRef: DestroyRef
@ -674,7 +673,7 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit {
private searchAssetProfiles(
aSearchTerm: string
): Observable<SearchResultItem[]> {
return this.adminService
return this.dataService
.fetchAssetProfiles({
filters: [
{

44
libs/ui/src/lib/services/admin.service.ts

@ -14,29 +14,23 @@ import {
AdminUserResponse,
AdminUsersResponse,
AssetProfileIdentifier,
AssetProfilesResponse,
DataProviderGhostfolioStatusResponse,
DataProviderHistoricalResponse,
EnhancedSymbolProfile,
Filter
EnhancedSymbolProfile
} from '@ghostfolio/common/interfaces';
import { DateRange } from '@ghostfolio/common/types';
import { GF_ENVIRONMENT } from '@ghostfolio/ui/environment';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable, inject } from '@angular/core';
import { SortDirection } from '@angular/material/sort';
import { DataSource, MarketData, Platform } from '@prisma/client';
import { JobStatus } from 'bull';
import { isNumber } from 'lodash';
import { DataService } from './data.service';
@Injectable({
providedIn: 'root'
})
export class AdminService {
private readonly dataService = inject(DataService);
private readonly environment = inject(GF_ENVIRONMENT);
private readonly http = inject(HttpClient);
@ -81,42 +75,6 @@ export class AdminService {
return this.http.get<AdminData>('/api/v1/admin');
}
public fetchAssetProfiles({
filters,
skip,
sortColumn,
sortDirection,
take
}: {
filters?: Filter[];
skip?: number;
sortColumn?: string;
sortDirection?: SortDirection;
take: number;
}) {
let params = this.dataService.buildFiltersAsQueryParams({ filters });
if (skip) {
params = params.append('skip', skip);
}
if (sortColumn) {
params = params.append('sortColumn', sortColumn);
}
if (sortDirection) {
params = params.append('sortDirection', sortDirection);
}
if (take) {
params = params.append('take', take);
}
return this.http.get<AssetProfilesResponse>('/api/v1/asset-profiles', {
params
});
}
public fetchGhostfolioDataProviderStatus(aApiKey: string) {
const headers = new HttpHeaders({
[HEADER_KEY_SKIP_INTERCEPTOR]: 'true',

37
libs/ui/src/lib/services/data.service.ts

@ -28,6 +28,7 @@ import {
AiPromptResponse,
ApiKeyResponse,
AssetProfileIdentifier,
AssetProfilesResponse,
AssetResponse,
BenchmarkMarketDataDetailsResponse,
BenchmarkResponse,
@ -378,6 +379,42 @@ export class DataService {
);
}
public fetchAssetProfiles({
filters,
skip,
sortColumn,
sortDirection,
take
}: {
filters?: Filter[];
skip?: number;
sortColumn?: string;
sortDirection?: SortDirection;
take: number;
}) {
let params = this.buildFiltersAsQueryParams({ filters });
if (skip) {
params = params.append('skip', skip);
}
if (sortColumn) {
params = params.append('sortColumn', sortColumn);
}
if (sortDirection) {
params = params.append('sortDirection', sortDirection);
}
if (take) {
params = params.append('take', take);
}
return this.http.get<AssetProfilesResponse>('/api/v1/asset-profiles', {
params
});
}
public fetchBenchmarkForUser({
dataSource,
filters,

Loading…
Cancel
Save