Browse Source

feat: Improve typings of getAsset() functionality

pull/5804/head
Vansh 2 weeks ago
parent
commit
45ba1e255d
  1. 4
      apps/api/src/app/asset/asset.controller.ts
  2. 3
      apps/client/src/app/services/data.service.ts
  3. 2
      libs/common/src/lib/interfaces/index.ts
  4. 3
      libs/common/src/lib/interfaces/responses/asset-response.interface.ts

4
apps/api/src/app/asset/asset.controller.ts

@ -1,7 +1,7 @@
import { AdminService } from '@ghostfolio/api/app/admin/admin.service';
import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
import type { AdminMarketDataDetails } from '@ghostfolio/common/interfaces';
import type { AssetResponse } from '@ghostfolio/common/interfaces';
import { Controller, Get, Param, UseInterceptors } from '@nestjs/common';
import { DataSource } from '@prisma/client';
@ -17,7 +17,7 @@ export class AssetController {
public async getAsset(
@Param('dataSource') dataSource: DataSource,
@Param('symbol') symbol: string
): Promise<AdminMarketDataDetails> {
): Promise<AssetResponse> {
const { assetProfile, marketData } =
await this.adminService.getMarketDataBySymbol({ dataSource, symbol });

3
apps/client/src/app/services/data.service.ts

@ -38,6 +38,7 @@ import {
ImportResponse,
InfoItem,
LookupResponse,
AssetResponse,
MarketDataDetailsResponse,
MarketDataOfMarketsResponse,
OAuthResponse,
@ -345,7 +346,7 @@ export class DataService {
public fetchAsset({
dataSource,
symbol
}: AssetProfileIdentifier): Observable<MarketDataDetailsResponse> {
}: AssetProfileIdentifier): Observable<AssetResponse> {
return this.http.get<any>(`/api/v1/asset/${dataSource}/${symbol}`).pipe(
map((data) => {
for (const item of data.marketData) {

2
libs/common/src/lib/interfaces/index.ts

@ -40,6 +40,7 @@ import type { AccountBalancesResponse } from './responses/account-balances-respo
import type { AccountsResponse } from './responses/accounts-response.interface';
import type { AiPromptResponse } from './responses/ai-prompt-response.interface';
import type { ApiKeyResponse } from './responses/api-key-response.interface';
import type { AssetResponse } from './responses/asset-response.interface';
import type { BenchmarkMarketDataDetailsResponse } from './responses/benchmark-market-data-details-response.interface';
import type { BenchmarkResponse } from './responses/benchmark-response.interface';
import type { DataEnhancerHealthResponse } from './responses/data-enhancer-health-response.interface';
@ -88,6 +89,7 @@ export {
AdminUsers,
AiPromptResponse,
ApiKeyResponse,
AssetResponse,
AssetClassSelectorOption,
AssetProfileIdentifier,
Benchmark,

3
libs/common/src/lib/interfaces/responses/asset-response.interface.ts

@ -0,0 +1,3 @@
import type { AdminMarketDataDetails } from '../admin-market-data-details.interface';
export interface AssetResponse extends AdminMarketDataDetails {}
Loading…
Cancel
Save