mirror of https://github.com/ghostfolio/ghostfolio
Browse Source
Co-Authored-By: Zakaria YAHI <9142557+ZakYahi@users.noreply.github.com>pull/1299/head
6 changed files with 71 additions and 55 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