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('assetClasses') filterByAssetClasses?: string,
@Query('dataSource') filterByDataSource?: string,
@Query('symbol') filterBySymbol?: string,
@Query('range') dateRange?: DateRange,
@Query('skip') skip?: number,
@Query('sortColumn') sortColumn?: string,
@Query('sortDirection') sortDirection?: Prisma.SortOrder,
@Query('symbol') filterBySymbol?: string,
@Query('tags') filterByTags?: string,
@Query('take') take?: number
): Promise<Activities> {

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

@ -345,13 +345,19 @@ export class OrderService {
const {
ACCOUNT: filtersByAccount,
ASSET_CLASS: filtersByAssetClass,
DATA_SOURCE: filtersByDataSource,
SYMBOL: filtersBySymbol,
TAG: filtersByTag
} = groupBy(filters, ({ 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 }) => {
return type === 'SEARCH_QUERY';
})?.id;
@ -397,25 +403,28 @@ export class OrderService {
};
}
if (filtersByDataSource?.length > 0) {
if (filterByDataSource && filterBySymbol) {
if (where.SymbolProfile) {
where.SymbolProfile = {
dataSource: {
in: <DataSource[]>filtersByDataSource.map(({ id }) => {
return id;
})
AND: [
where.SymbolProfile,
{
AND: [
{ dataSource: <DataSource>filterByDataSource },
{ symbol: filterBySymbol }
]
}
]
};
}
if (filtersBySymbol?.length > 0) {
} else {
where.SymbolProfile = {
symbol: {
in: filtersBySymbol.map(({ id }) => {
return id;
})
}
AND: [
{ dataSource: <DataSource>filterByDataSource },
{ symbol: filterBySymbol }
]
};
}
}
if (searchQuery) {
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 assetClasses = filterByAssetClasses?.split(',') ?? [];
const assetSubClasses = filterByAssetSubClasses?.split(',') ?? [];
const dataSource = filterByDataSource?.split(',') ?? [];
const dataSource = filterByDataSource;
const holdingType = filterByHoldingType;
const searchQuery = filterBySearchQuery?.toLowerCase();
const symbols = filterBySymbol?.split(',') ?? [];
const symbol = filterBySymbol;
const tagIds = filterByTags?.split(',') ?? [];
const filters = [
@ -53,18 +53,6 @@ export class ApiService {
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) => {
return <Filter>{
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;
}
}

Loading…
Cancel
Save