Browse Source

Refactoring

pull/6981/head
Thomas Kaul 3 months ago
parent
commit
248f01234f
  1. 20
      apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts
  2. 3
      apps/api/src/app/endpoints/asset-profiles/asset-profiles.module.ts
  3. 2
      apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts

20
apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts

@ -1,38 +1,48 @@
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
import { UpdateAssetProfileDataDto } from '@ghostfolio/common/dtos';
import { EnhancedSymbolProfile } from '@ghostfolio/common/interfaces';
import { permissions } from '@ghostfolio/common/permissions';
import { RequestWithUser } from '@ghostfolio/common/types';
import {
Body,
Controller,
HttpException,
Inject,
Param,
Patch,
UseGuards,
UseInterceptors
UseGuards
} from '@nestjs/common';
import { REQUEST } from '@nestjs/core';
import { AuthGuard } from '@nestjs/passport';
import { DataSource } from '@prisma/client';
import { StatusCodes, getReasonPhrase } from 'http-status-codes';
import { AssetProfilesService } from './asset-profiles.service';
@Controller('asset-profiles')
export class AssetProfilesController {
public constructor(
private readonly assetProfilesService: AssetProfilesService
private readonly assetProfilesService: AssetProfilesService,
@Inject(REQUEST) private readonly request: RequestWithUser
) {}
@HasPermission(permissions.accessAdminControl)
@Patch(':dataSource/:symbol')
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
@UseInterceptors(TransformDataSourceInRequestInterceptor)
public async updateAssetProfileData(
@Body() assetProfileData: UpdateAssetProfileDataDto,
@Param('dataSource') dataSource: DataSource,
@Param('symbol') symbol: string
): Promise<EnhancedSymbolProfile> {
if (!this.request.user.settings.settings.isExperimentalFeatures) {
throw new HttpException(
getReasonPhrase(StatusCodes.NOT_FOUND),
StatusCodes.NOT_FOUND
);
}
return this.assetProfilesService.updateAssetProfileData(
{ dataSource, symbol },
assetProfileData

3
apps/api/src/app/endpoints/asset-profiles/asset-profiles.module.ts

@ -1,4 +1,3 @@
import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module';
import { Module } from '@nestjs/common';
@ -8,7 +7,7 @@ import { AssetProfilesService } from './asset-profiles.service';
@Module({
controllers: [AssetProfilesController],
imports: [SymbolProfileModule, TransformDataSourceInRequestModule],
imports: [SymbolProfileModule],
providers: [AssetProfilesService]
})
export class AssetProfilesModule {}

2
apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts

@ -27,7 +27,7 @@ export class AssetProfilesService {
if (!assetProfile) {
throw new NotFoundException(
`Asset profile with data source ${dataSource} and symbol ${symbol} not found`
`Could not find the asset profile for ${symbol} (${dataSource})`
);
}

Loading…
Cancel
Save