Browse Source

Feature/expose profile data gathering by symbol endpoint (#611)

* Expose profile data gathering by symbol endpoint

* Update changelog
pull/612/head
Thomas Kaul 3 years ago
committed by GitHub
parent
commit
9ac67b0af2
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      CHANGELOG.md
  2. 23
      apps/api/src/app/admin/admin.controller.ts
  3. 13
      apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
  4. 7
      apps/client/src/app/components/admin-market-data/admin-market-data.html
  5. 13
      apps/client/src/app/services/admin.service.ts

4
CHANGELOG.md

@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
### Added
- Exposed the profile data gathering by symbol as an endpoint
### Changed
- Improved the portfolio analysis page: show the y-axis and extend the chart in relation to the days in market

23
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<void> {
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(

13
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

7
apps/client/src/app/components/admin-market-data/admin-market-data.html

@ -38,6 +38,13 @@
>
Gather Data
</button>
<button
i18n
mat-menu-item
(click)="onGatherProfileDataBySymbol({dataSource: item.dataSource, symbol: item.symbol})"
>
Gather Profile Data
</button>
</mat-menu>
</td>
</tr>

13
apps/client/src/app/services/admin.service.ts

@ -20,6 +20,19 @@ export class AdminService {
return this.http.post<void>(`/api/admin/gather/profile-data`, {});
}
public gatherProfileDataBySymbol({
dataSource,
symbol
}: {
dataSource: DataSource;
symbol: string;
}) {
return this.http.post<void>(
`/api/admin/gather/profile-data/${dataSource}/${symbol}`,
{}
);
}
public gatherSymbol({
dataSource,
date,

Loading…
Cancel
Save