diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index 2c469612e..d8c05b0cc 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -105,6 +105,23 @@ export class AdminController { this.dataGatheringService.gatherMax(); } + @HasPermission(permissions.accessAdminControl) + @Post('gather/missing') + @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async gatherMissing(): Promise { + const assetProfileIdentifiers = + await this.dataGatheringService.getAllAssetProfileIdentifiers(); + + const promises = assetProfileIdentifiers.map(({ dataSource, symbol }) => { + return this.dataGatheringService.gatherSymbolMissingOnly({ + dataSource, + symbol + }); + }); + + await Promise.all(promises); + } + @HasPermission(permissions.accessAdminControl) @Post('gather/profile-data') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) 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 549708d87..ef63a3ef2 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 @@ -260,6 +260,17 @@ export class AdminMarketDataComponent }); } + public onGatherMissing() { + this.adminService + .gatherMissingOnly() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + setTimeout(() => { + window.location.reload(); + }, 300); + }); + } + public onGatherProfileData() { this.adminService .gatherProfileData() 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 de5707d02..163f89522 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 @@ -194,6 +194,9 @@ + diff --git a/apps/client/src/app/services/admin.service.ts b/apps/client/src/app/services/admin.service.ts index 81451b99c..dc8eb2478 100644 --- a/apps/client/src/app/services/admin.service.ts +++ b/apps/client/src/app/services/admin.service.ts @@ -168,6 +168,10 @@ export class AdminService { return this.http.post('/api/v1/admin/gather/max', {}); } + public gatherMissingOnly() { + return this.http.post('/api/v1/admin/gather/missing', {}); + } + public gatherProfileData() { return this.http.post('/api/v1/admin/gather/profile-data', {}); }