Browse Source

Reuse interfaces

pull/4016/head
Thomas Kaul 10 months ago
parent
commit
d0652c36b5
  1. 8
      apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts
  2. 11
      apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts
  3. 14
      apps/client/src/app/pages/api/api-page.component.ts

8
apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts

@ -1,10 +1,12 @@
import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface';
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service';
import { PropertyService } from '@ghostfolio/api/services/property/property.service';
import { PROPERTY_DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS } from '@ghostfolio/common/config';
import { DataProviderGhostfolioStatusResponse } from '@ghostfolio/common/interfaces';
import {
DataProviderGhostfolioStatusResponse,
LookupResponse
} from '@ghostfolio/common/interfaces';
import { permissions } from '@ghostfolio/common/permissions';
import { RequestWithUser } from '@ghostfolio/common/types';
@ -37,7 +39,7 @@ export class GhostfolioController {
public async lookupSymbol(
@Query('includeIndices') includeIndicesParam = 'false',
@Query('query') query = ''
): Promise<{ items: LookupItem[] }> {
): Promise<LookupResponse> {
const includeIndices = includeIndicesParam === 'true';
const maxDailyRequests = await this.getMaxDailyRequests();

11
apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts

@ -1,7 +1,10 @@
import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service';
import { DataProviderInfo } from '@ghostfolio/common/interfaces';
import {
DataProviderInfo,
LookupItem,
LookupResponse
} from '@ghostfolio/common/interfaces';
import { Injectable, Logger } from '@nestjs/common';
import { DataSource } from '@prisma/client';
@ -19,8 +22,8 @@ export class GhostfolioService {
}: {
includeIndices?: boolean;
query: string;
}): Promise<{ items: LookupItem[] }> {
const results: { items: LookupItem[] } = { items: [] };
}): Promise<LookupResponse> {
const results: LookupResponse = { items: [] };
if (!query) {
return results;

14
apps/client/src/app/pages/api/api-page.component.ts

@ -1,5 +1,7 @@
import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface';
import { DataProviderGhostfolioStatusResponse } from '@ghostfolio/common/interfaces';
import {
DataProviderGhostfolioStatusResponse,
LookupResponse
} from '@ghostfolio/common/interfaces';
import { CommonModule } from '@angular/common';
import { HttpClient, HttpParams } from '@angular/common/http';
@ -16,7 +18,7 @@ import { map, Observable, Subject, takeUntil } from 'rxjs';
})
export class GfApiPageComponent implements OnInit {
public status$: Observable<DataProviderGhostfolioStatusResponse>;
public symbols$: Observable<LookupItem[]>;
public symbols$: Observable<LookupResponse['items']>;
private unsubscribeSubject = new Subject<void>();
@ -54,9 +56,9 @@ export class GfApiPageComponent implements OnInit {
}
return this.http
.get<{
items: LookupItem[];
}>('/api/v1/data-providers/ghostfolio/lookup', { params })
.get<LookupResponse>('/api/v1/data-providers/ghostfolio/lookup', {
params
})
.pipe(
map(({ items }) => {
return items;

Loading…
Cancel
Save