Browse Source

address pr comments

pull/3743/head
Shaunak Das 12 months ago
parent
commit
771f71286e
  1. 2
      apps/api/src/app/order/order.controller.ts
  2. 39
      apps/api/src/app/order/order.service.ts
  3. 30
      apps/api/src/services/api/api.service.ts

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

@ -100,11 +100,11 @@ export class OrderController {
@Query('accounts') filterByAccounts?: string, @Query('accounts') filterByAccounts?: string,
@Query('assetClasses') filterByAssetClasses?: string, @Query('assetClasses') filterByAssetClasses?: string,
@Query('dataSource') filterByDataSource?: string, @Query('dataSource') filterByDataSource?: string,
@Query('symbol') filterBySymbol?: string,
@Query('range') dateRange?: DateRange, @Query('range') dateRange?: DateRange,
@Query('skip') skip?: number, @Query('skip') skip?: number,
@Query('sortColumn') sortColumn?: string, @Query('sortColumn') sortColumn?: string,
@Query('sortDirection') sortDirection?: Prisma.SortOrder, @Query('sortDirection') sortDirection?: Prisma.SortOrder,
@Query('symbol') filterBySymbol?: string,
@Query('tags') filterByTags?: string, @Query('tags') filterByTags?: string,
@Query('take') take?: number @Query('take') take?: number
): Promise<Activities> { ): Promise<Activities> {

39
apps/api/src/app/order/order.service.ts

@ -345,13 +345,19 @@ export class OrderService {
const { const {
ACCOUNT: filtersByAccount, ACCOUNT: filtersByAccount,
ASSET_CLASS: filtersByAssetClass, ASSET_CLASS: filtersByAssetClass,
DATA_SOURCE: filtersByDataSource,
SYMBOL: filtersBySymbol,
TAG: filtersByTag TAG: filtersByTag
} = groupBy(filters, ({ type }) => { } = groupBy(filters, ({ type }) => {
return type; return type;
}); });
const filterByDataSource = filters?.find(({ type }) => {
return type === 'DATA_SOURCE';
})?.id;
const filterBySymbol = filters?.find(({ type }) => {
return type === 'SYMBOL';
})?.id;
const searchQuery = filters?.find(({ type }) => { const searchQuery = filters?.find(({ type }) => {
return type === 'SEARCH_QUERY'; return type === 'SEARCH_QUERY';
})?.id; })?.id;
@ -397,25 +403,28 @@ export class OrderService {
}; };
} }
if (filtersByDataSource?.length > 0) { if (filterByDataSource && filterBySymbol) {
if (where.SymbolProfile) {
where.SymbolProfile = { where.SymbolProfile = {
dataSource: { AND: [
in: <DataSource[]>filtersByDataSource.map(({ id }) => { where.SymbolProfile,
return id; {
}) AND: [
{ dataSource: <DataSource>filterByDataSource },
{ symbol: filterBySymbol }
]
} }
]
}; };
} } else {
if (filtersBySymbol?.length > 0) {
where.SymbolProfile = { where.SymbolProfile = {
symbol: { AND: [
in: filtersBySymbol.map(({ id }) => { { dataSource: <DataSource>filterByDataSource },
return id; { symbol: filterBySymbol }
}) ]
}
}; };
} }
}
if (searchQuery) { if (searchQuery) {
const searchQueryWhereInput: Prisma.SymbolProfileWhereInput[] = [ const searchQueryWhereInput: Prisma.SymbolProfileWhereInput[] = [

30
apps/api/src/services/api/api.service.ts

@ -28,10 +28,10 @@ export class ApiService {
const accountIds = filterByAccounts?.split(',') ?? []; const accountIds = filterByAccounts?.split(',') ?? [];
const assetClasses = filterByAssetClasses?.split(',') ?? []; const assetClasses = filterByAssetClasses?.split(',') ?? [];
const assetSubClasses = filterByAssetSubClasses?.split(',') ?? []; const assetSubClasses = filterByAssetSubClasses?.split(',') ?? [];
const dataSource = filterByDataSource?.split(',') ?? []; const dataSource = filterByDataSource;
const holdingType = filterByHoldingType; const holdingType = filterByHoldingType;
const searchQuery = filterBySearchQuery?.toLowerCase(); const searchQuery = filterBySearchQuery?.toLowerCase();
const symbols = filterBySymbol?.split(',') ?? []; const symbol = filterBySymbol;
const tagIds = filterByTags?.split(',') ?? []; const tagIds = filterByTags?.split(',') ?? [];
const filters = [ const filters = [
@ -53,18 +53,6 @@ export class ApiService {
type: 'ASSET_SUB_CLASS' type: 'ASSET_SUB_CLASS'
}; };
}), }),
...dataSource.map((dataSource) => {
return <Filter>{
id: dataSource,
type: 'DATA_SOURCE'
};
}),
...symbols.map((symbol) => {
return <Filter>{
id: symbol,
type: 'SYMBOL'
};
}),
...tagIds.map((tagId) => { ...tagIds.map((tagId) => {
return <Filter>{ return <Filter>{
id: tagId, id: tagId,
@ -87,6 +75,20 @@ export class ApiService {
}); });
} }
if (dataSource) {
filters.push({
id: dataSource,
type: 'DATA_SOURCE'
});
}
if (symbol) {
filters.push({
id: symbol,
type: 'SYMBOL'
});
}
return filters; return filters;
} }
} }

Loading…
Cancel
Save