add filter to handle object arrays
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { umbUserGroupMockDb } from '../user-group/user-group.db.js';
|
||||
import { arrayFilter, stringFilter, queryFilter } from '../utils.js';
|
||||
import { arrayFilter, stringFilter, queryFilter, objectArrayFilter } from '../utils.js';
|
||||
import { UmbEntityMockDbBase } from '../utils/entity/entity-base.js';
|
||||
import { UmbMockEntityItemManager } from '../utils/entity/entity-item.manager.js';
|
||||
import { UmbMockEntityDetailManager } from '../utils/entity/entity-detail.manager.js';
|
||||
@@ -28,7 +28,7 @@ interface UserFilterOptions {
|
||||
}
|
||||
|
||||
const userGroupFilter = (filterOptions: UserFilterOptions, item: UmbMockUserModel) =>
|
||||
arrayFilter(filterOptions.userGroupIds, item.userGroupIds);
|
||||
objectArrayFilter(filterOptions.userGroupIds, item.userGroupIds, 'id');
|
||||
const userStateFilter = (filterOptions: UserFilterOptions, item: UmbMockUserModel) =>
|
||||
stringFilter(filterOptions.userStates, item.state);
|
||||
const userQueryFilter = (filterOptions: UserFilterOptions, item: UmbMockUserModel) =>
|
||||
|
||||
@@ -7,11 +7,20 @@ export const arrayFilter = (filterBy: Array<string>, value?: Array<string>): boo
|
||||
return filterBy.some((filterValue: string) => value?.includes(filterValue));
|
||||
};
|
||||
|
||||
export const objectArrayFilter = (filterBy: Array<any>, value: Array<any>, key: string): boolean => {
|
||||
if (!filterBy || !value) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return value.map((value) => value[key]).some((value: any) => filterBy.includes(value));
|
||||
};
|
||||
|
||||
export const stringFilter = (filterBy: Array<string>, value?: string): boolean => {
|
||||
// if a filter is not set, return all items
|
||||
if (!filterBy || !value) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return filterBy.includes(value);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user