mirror of https://github.com/ghostfolio/ghostfolio
Browse Source
* Refactor filters Co-Authored-By: Zakaria YAHI <9142557+ZakYahi@users.noreply.github.com>pull/1331/head
committed by
GitHub
9 changed files with 213 additions and 243 deletions
@ -0,0 +1,9 @@ |
|||
import { Module } from '@nestjs/common'; |
|||
|
|||
import { ApiService } from './api.service'; |
|||
|
|||
@Module({ |
|||
exports: [ApiService], |
|||
providers: [ApiService] |
|||
}) |
|||
export class ApiModule {} |
@ -0,0 +1,42 @@ |
|||
import { Filter } from '@ghostfolio/common/interfaces'; |
|||
import { Injectable } from '@nestjs/common'; |
|||
|
|||
@Injectable() |
|||
export class ApiService { |
|||
public constructor() {} |
|||
|
|||
public buildFiltersFromQueryParams({ |
|||
filterByAccounts, |
|||
filterByAssetClasses, |
|||
filterByTags |
|||
}: { |
|||
filterByAccounts?: string; |
|||
filterByAssetClasses?: string; |
|||
filterByTags?: string; |
|||
}): Filter[] { |
|||
const accountIds = filterByAccounts?.split(',') ?? []; |
|||
const assetClasses = filterByAssetClasses?.split(',') ?? []; |
|||
const tagIds = filterByTags?.split(',') ?? []; |
|||
|
|||
return [ |
|||
...accountIds.map((accountId) => { |
|||
return <Filter>{ |
|||
id: accountId, |
|||
type: 'ACCOUNT' |
|||
}; |
|||
}), |
|||
...assetClasses.map((assetClass) => { |
|||
return <Filter>{ |
|||
id: assetClass, |
|||
type: 'ASSET_CLASS' |
|||
}; |
|||
}), |
|||
...tagIds.map((tagId) => { |
|||
return <Filter>{ |
|||
id: tagId, |
|||
type: 'TAG' |
|||
}; |
|||
}) |
|||
]; |
|||
} |
|||
} |
Loading…
Reference in new issue