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
								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