Feature/Add wtd and mtd as possible values for date range (#2902)

* Add `wtd` and `mtd` as possible values for date range
  'wtd': week-to-date (from the start of the week)
  'mtd': month-to-date (from the start of the month)

* Update changelog
This commit is contained in:
Cédric Meuter 2024-01-21 16:51:30 +01:00 committed by GitHub
parent 5fc84a06cc
commit 4e9e3f7b6b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 20 additions and 5 deletions

View File

@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Extended the date range support by week to date (`WTD`) and month to date (`MTD`) in the portfolio service
- Added `healthcheck` for the _Ghostfolio_ service to the `docker-compose` files (`docker-compose.yml` and `docker-compose.build.yml`) - Added `healthcheck` for the _Ghostfolio_ service to the `docker-compose` files (`docker-compose.yml` and `docker-compose.build.yml`)
## 2.42.0 - 2024-01-21 ## 2.42.0 - 2024-01-21
@ -274,7 +275,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- Handled reading items from missing transaction point while getting the position (`getPosition()`) in portfolio service - Handled reading items from missing transaction point while getting the position (`getPosition()`) in the portfolio service
## 2.24.0 - 2023-11-16 ## 2.24.0 - 2023-11-16

View File

@ -73,7 +73,9 @@ import {
min, min,
parseISO, parseISO,
set, set,
setDayOfYear, startOfWeek,
startOfMonth,
startOfYear,
subDays, subDays,
subYears subYears
} from 'date-fns'; } from 'date-fns';
@ -1649,10 +1651,22 @@ export class PortfolioService {
subDays(new Date().setHours(0, 0, 0, 0), 1) subDays(new Date().setHours(0, 0, 0, 0), 1)
]); ]);
break; break;
case 'mtd':
portfolioStart = max([
portfolioStart,
startOfMonth(new Date().setHours(0, 0, 0, 0))
]);
break;
case 'wtd':
portfolioStart = max([
portfolioStart,
startOfWeek(new Date().setHours(0, 0, 0, 0), { weekStartsOn: 1 })
]);
break;
case 'ytd': case 'ytd':
portfolioStart = max([ portfolioStart = max([
portfolioStart, portfolioStart,
setDayOfYear(new Date().setHours(0, 0, 0, 0), 1) startOfYear(new Date().setHours(0, 0, 0, 0))
]); ]);
break; break;
case '1y': case '1y':

View File

@ -30,7 +30,7 @@ export class UpdateUserSettingDto {
@IsOptional() @IsOptional()
colorScheme?: ColorScheme; colorScheme?: ColorScheme;
@IsIn(<DateRange[]>['1d', '1y', '5y', 'max', 'ytd']) @IsIn(<DateRange[]>['1d', '1y', '5y', 'max', 'mtd', 'wtd', 'ytd'])
@IsOptional() @IsOptional()
dateRange?: DateRange; dateRange?: DateRange;

View File

@ -1 +1 @@
export type DateRange = '1d' | '1y' | '5y' | 'max' | 'ytd'; export type DateRange = '1d' | '1y' | '5y' | 'max' | 'mtd' | 'wtd' | 'ytd';