From 3e729076d8caa75d006b8b782f142e89c055e84c Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Jan 2022 14:19:29 +0100 Subject: [PATCH] Expose profile data gathering by symbol endpoint --- apps/api/src/app/admin/admin.controller.ts | 23 +++++++++++++++++++ .../admin-market-data.component.ts | 13 +++++++++++ .../admin-market-data/admin-market-data.html | 7 ++++++ apps/client/src/app/services/admin.service.ts | 13 +++++++++++ 4 files changed, 56 insertions(+) diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index ab20df270..e24522444 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -96,6 +96,29 @@ export class AdminController { return; } + @Post('gather/profile-data/:dataSource/:symbol') + @UseGuards(AuthGuard('jwt')) + public async gatherProfileDataForSymbol( + @Param('dataSource') dataSource: DataSource, + @Param('symbol') symbol: string + ): Promise { + if ( + !hasPermission( + this.request.user.permissions, + permissions.accessAdminControl + ) + ) { + throw new HttpException( + getReasonPhrase(StatusCodes.FORBIDDEN), + StatusCodes.FORBIDDEN + ); + } + + this.dataGatheringService.gatherProfileData([{ dataSource, symbol }]); + + return; + } + @Post('gather/:dataSource/:symbol') @UseGuards(AuthGuard('jwt')) public async gatherSymbol( diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts index 87ebfea28..a8d96233a 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts @@ -43,6 +43,19 @@ export class AdminMarketDataComponent implements OnDestroy, OnInit { this.fetchAdminMarketData(); } + public onGatherProfileDataBySymbol({ + dataSource, + symbol + }: { + dataSource: DataSource; + symbol: string; + }) { + this.adminService + .gatherProfileDataBySymbol({ dataSource, symbol }) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => {}); + } + public onGatherSymbol({ dataSource, symbol diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.html b/apps/client/src/app/components/admin-market-data/admin-market-data.html index b0df54364..3410e99ed 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.html +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -38,6 +38,13 @@ > Gather Data + diff --git a/apps/client/src/app/services/admin.service.ts b/apps/client/src/app/services/admin.service.ts index 66488f4ac..b10d3fed0 100644 --- a/apps/client/src/app/services/admin.service.ts +++ b/apps/client/src/app/services/admin.service.ts @@ -20,6 +20,19 @@ export class AdminService { return this.http.post(`/api/admin/gather/profile-data`, {}); } + public gatherProfileDataBySymbol({ + dataSource, + symbol + }: { + dataSource: DataSource; + symbol: string; + }) { + return this.http.post( + `/api/admin/gather/profile-data/${dataSource}/${symbol}`, + {} + ); + } + public gatherSymbol({ dataSource, date,