in web/src/api/hooks/jobs.ts [110:143]
export function jobPropFetcher(
propName: keyof Job,
page = 1,
size = pageSizes._15,
keyword: string = ''
): Promise<PagedResponse<string>> {
const sortConfig = {
field: propName,
direction: SortingDirection.ASC
};
const filters: FilterWithDocumentExtraOption<keyof Job>[] = [];
filters.push({
field: propName,
operator: Operators.DISTINCT
});
if (keyword) {
filters.push({
field: propName,
operator: Operators.ILIKE,
value: `%${keyword}%`
});
}
const body: SearchBody<Job> = {
pagination: { page_num: page, page_size: size },
filters,
sorting: [{ direction: sortConfig.direction, field: sortConfig.field as keyof Job }]
};
return useBadgerFetch<PagedResponse<string>>({
url: `${namespace}/jobs/search`,
method: 'post',
withCredentials: true
})(JSON.stringify(body));
}