Browse Source

Deprecate api/v1/portfolio/position endpoints

pull/4648/head
Thomas Kaul 4 months ago
parent
commit
0ca5035486
  1. 66
      apps/api/src/app/portfolio/portfolio.controller.ts
  2. 4
      apps/client/src/app/services/data.service.ts

66
apps/api/src/app/portfolio/portfolio.controller.ts

@ -365,6 +365,32 @@ export class PortfolioController {
return { dividends }; return { dividends };
} }
@Get('holding/:dataSource/:symbol')
@UseInterceptors(RedactValuesInResponseInterceptor)
@UseInterceptors(TransformDataSourceInRequestInterceptor)
@UseInterceptors(TransformDataSourceInResponseInterceptor)
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
public async getHolding(
@Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string,
@Param('dataSource') dataSource: DataSource,
@Param('symbol') symbol: string
): Promise<PortfolioHoldingDetail> {
const holding = await this.portfolioService.getPosition(
dataSource,
impersonationId,
symbol
);
if (!holding) {
throw new HttpException(
getReasonPhrase(StatusCodes.NOT_FOUND),
StatusCodes.NOT_FOUND
);
}
return holding;
}
@Get('holdings') @Get('holdings')
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseGuards(AuthGuard('jwt'), HasPermissionGuard)
@UseInterceptors(RedactValuesInResponseInterceptor) @UseInterceptors(RedactValuesInResponseInterceptor)
@ -583,6 +609,9 @@ export class PortfolioController {
return performanceInformation; return performanceInformation;
} }
/**
* @deprecated
*/
@Get('position/:dataSource/:symbol') @Get('position/:dataSource/:symbol')
@UseInterceptors(RedactValuesInResponseInterceptor) @UseInterceptors(RedactValuesInResponseInterceptor)
@UseInterceptors(TransformDataSourceInRequestInterceptor) @UseInterceptors(TransformDataSourceInRequestInterceptor)
@ -634,7 +663,7 @@ export class PortfolioController {
} }
@HasPermission(permissions.updateOrder) @HasPermission(permissions.updateOrder)
@Put('position/:dataSource/:symbol/tags') @Put('holding/:dataSource/:symbol/tags')
@UseInterceptors(TransformDataSourceInRequestInterceptor) @UseInterceptors(TransformDataSourceInRequestInterceptor)
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseGuards(AuthGuard('jwt'), HasPermissionGuard)
public async updateHoldingTags( public async updateHoldingTags(
@ -664,4 +693,39 @@ export class PortfolioController {
userId: this.request.user.id userId: this.request.user.id
}); });
} }
/**
* @deprecated
*/
@HasPermission(permissions.updateOrder)
@Put('position/:dataSource/:symbol/tags')
@UseInterceptors(TransformDataSourceInRequestInterceptor)
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
public async updatePositionTags(
@Body() data: UpdateHoldingTagsDto,
@Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string,
@Param('dataSource') dataSource: DataSource,
@Param('symbol') symbol: string
): Promise<void> {
const holding = await this.portfolioService.getPosition(
dataSource,
impersonationId,
symbol
);
if (!holding) {
throw new HttpException(
getReasonPhrase(StatusCodes.NOT_FOUND),
StatusCodes.NOT_FOUND
);
}
await this.portfolioService.updateTags({
dataSource,
impersonationId,
symbol,
tags: data.tags,
userId: this.request.user.id
});
}
} }

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

@ -407,7 +407,7 @@ export class DataService {
}) { }) {
return this.http return this.http
.get<PortfolioHoldingDetail>( .get<PortfolioHoldingDetail>(
`/api/v1/portfolio/position/${dataSource}/${symbol}` `/api/v1/portfolio/holding/${dataSource}/${symbol}`
) )
.pipe( .pipe(
map((data) => { map((data) => {
@ -776,7 +776,7 @@ export class DataService {
tags tags
}: { tags: Tag[] } & AssetProfileIdentifier) { }: { tags: Tag[] } & AssetProfileIdentifier) {
return this.http.put<void>( return this.http.put<void>(
`/api/v1/portfolio/position/${dataSource}/${symbol}/tags`, `/api/v1/portfolio/holding/${dataSource}/${symbol}/tags`,
{ tags } { tags }
); );
} }

Loading…
Cancel
Save