export function datasetPropFetcher()

in web/src/api/hooks/datasets.ts [121:154]


export function datasetPropFetcher(
    propName: keyof Dataset,
    page = 1,
    size = pageSizes._15,
    keyword: string = ''
): Promise<PagedResponse<string>> {
    const sortConfig = {
        field: propName,
        direction: SortingDirection.ASC
    };
    const filters: FilterWithDocumentExtraOption<keyof Dataset>[] = [];
    filters.push({
        field: propName,
        operator: Operators.DISTINCT
    });
    if (keyword) {
        filters.push({
            field: propName,
            operator: Operators.ILIKE,
            value: `%${keyword}%`
        });
    }
    const body: SearchBody<Dataset> = {
        pagination: { page_num: page, page_size: size },
        filters,
        sorting: [{ direction: sortConfig.direction, field: sortConfig.field as keyof Dataset }]
    };

    return useBadgerFetch<PagedResponse<string>>({
        url: `${namespace}/datasets/search`,
        method: 'post',
        withCredentials: true
    })(JSON.stringify(body));
}