Browse Source

Add date range support

pull/3303/head
Thomas Kaul 1 year ago
parent
commit
158b4a1aed
  1. 2
      apps/api/src/app/portfolio/portfolio.controller.ts
  2. 3
      apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts
  3. 3
      apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts
  4. 11
      apps/client/src/app/services/data.service.ts

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

@ -290,6 +290,7 @@ export class PortfolioController {
@Query('assetClasses') filterByAssetClasses?: string, @Query('assetClasses') filterByAssetClasses?: string,
@Query('holdingType') filterByHoldingType?: string, @Query('holdingType') filterByHoldingType?: string,
@Query('query') filterBySearchQuery?: string, @Query('query') filterBySearchQuery?: string,
@Query('range') dateRange: DateRange = 'max',
@Query('tags') filterByTags?: string @Query('tags') filterByTags?: string
): Promise<PortfolioHoldingsResponse> { ): Promise<PortfolioHoldingsResponse> {
const filters = this.apiService.buildFiltersFromQueryParams({ const filters = this.apiService.buildFiltersFromQueryParams({
@ -301,6 +302,7 @@ export class PortfolioController {
}); });
const { holdings } = await this.portfolioService.getDetails({ const { holdings } = await this.portfolioService.getDetails({
dateRange,
filters, filters,
impersonationId, impersonationId,
userId: this.request.user.id userId: this.request.user.id

3
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts

@ -122,7 +122,8 @@ export class AccountDetailDialog implements OnDestroy, OnInit {
type: 'ACCOUNT', type: 'ACCOUNT',
id: this.data.accountId id: this.data.accountId
} }
] ],
range: 'max'
}) })
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
.subscribe(({ holdings }) => { .subscribe(({ holdings }) => {

3
apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts

@ -123,7 +123,8 @@ export class HoldingsPageComponent implements OnDestroy, OnInit {
} }
return this.dataService.fetchPortfolioHoldings({ return this.dataService.fetchPortfolioHoldings({
filters filters,
range: this.user?.settings?.dateRange
}); });
} }

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

@ -464,13 +464,18 @@ export class DataService {
} }
public fetchPortfolioHoldings({ public fetchPortfolioHoldings({
filters filters,
range
}: { }: {
filters?: Filter[]; filters?: Filter[];
} = {}) { range: DateRange;
}) {
let params = this.buildFiltersAsQueryParams({ filters });
params = params.append('range', range);
return this.http return this.http
.get<PortfolioHoldingsResponse>('/api/v1/portfolio/holdings', { .get<PortfolioHoldingsResponse>('/api/v1/portfolio/holdings', {
params: this.buildFiltersAsQueryParams({ filters }) params
}) })
.pipe( .pipe(
map((response) => { map((response) => {

Loading…
Cancel
Save