1.0.0 • Published 1 year ago

@dlabs71/d-datatable-request v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

D-datatable-request

NPM Version License

Библиотека для создания параметров datatable-запроса.

Установка NPM

npm i @dlabs71/d-datatable-request

Использование

Данная библиотека может быть использована в любом js приложении, вне зависимости от фреймворка. Она предоставляет два метода: метод для создания объекта описывающего параметры фильтрации данных в запросе и метода создания объекта описывающего параметры сортировки данных в запросе.

Например, создадим запрос следующего вида: Alt text

api-service.js

import axios from 'axios';
import {createSearchParams, createSortParams} from '@dlabs71/d-datatable-request';

export default {

    searchInUsers(searchData, sortData) {
        let searchParams = createSearchParams(searchData);
        let sortParams = createSortParams(sortData);

        return axios.get('/user/list', {
            params: {
                start: 0,
                length: 25,
                ...searchParams,
                ...sortParams
            }
        })
    }
}

example.js

import ApiService from 'api-service.js';
import {SORT_DIR} from "@dlabs71/d-datatable-request";

let searchData = {
    firstName: "Данила"
};

let sortData = {
    registrationDate: SORT_DIR.DESC
};

ApiService.searchUsers(searchData, sortData);

Документация

Оглавление

1. Функция createSearchParams

Функция createSearchParams - предназначена для создания объекта с параметрами фильтрации. Данная функция имеет несколько параметров:

ПараметрТипЗначение по умолчаниюОписание
searchDataObject или Array ObjectИсходный объект или массив объектов описывающих параметры фильтрации
keyFieldstringfieldИспользуется если тип searchData - Array. Наименование атрибута объекта содержащего имя параметра фильтрации
valueFieldstringvalueИспользуется если тип searchData - Array. Наименование атрибута объекта содержащего значение параметра фильтрации
stringifyValuebooleantrueЕсли true, то все значения создаваемых параметров имеющие тип Object или Array будут преобразованны в строку JSON.stringify

В результате выполнения функции получится следующий объект:

{
    "search[0][name]": "prop1",
    "search[0][value]": "value1",
    "search[1][name]": "prop2",
    "search[1][value]": "value2"
}

Примеры использования:

import {createSearchParams} from '@dlabs71/d-datatable-request';

let searchData1 = {
    prop1: "value1",
    prop2: "value2"
}
createSearchParams(searchData1);
/*
 результат выполнения будет следующим:
 {
    "search[0][name]": "prop1",
    "search[0][value]": "value1",
    "search[1][name]": "prop2",
    "search[1][value]": "value2"
}
 */

let searchData2 = [
    {title: "prop1", value: "value1"},
    {title: "prop2", value: "value2"}
]
createSearchParams(searchData2, "title", "value");
/*
 результат выполнения будет следующим:
 {
    "search[0][name]": "prop1",
    "search[0][value]": "value1",
    "search[1][name]": "prop2",
    "search[1][value]": "value2"
}
 */

let searchData3 = [
    {title: "prop1", value: "value1"},
    {title: "prop2", value: {data: "data"}}
]
createSearchParams(searchData3, "title", "value", true);
/*
 результат выполнения будет следующим:
 {
    "search[0][name]": "prop1",
    "search[0][value]": "value1",
    "search[1][name]": "prop2",
    "search[1][value]": "{"data": "data"}"
}
*/

2. Функция createSortParams

Функция createSortParams - предназначена для создания объекта с параметрами сортировки. Данная функция имеет несколько параметров:

ПараметрТипЗначение по умолчаниюОписание
sortDataObject или Array ObjectИсходный объект или массив объектов описывающих параметры сортировки
keyFieldstringfieldИспользуется если тип searchData - Array. Наименование атрибута объекта содержащего имя параметра сортировки
valueFieldstringvalueИспользуется если тип searchData - Array. Наименование атрибута объекта содержащего значение параметра сортировки

В результате выполнения функции получится следующий объект:

{
    "order[0][name]": "prop1",
    "order[0][dir]": "asc",
    "order[1][name]": "prop2",
    "order[1][dir]": "desc"
}

Примеры использования:

import {createSortParams, SORT_DIR} from '@dlabs71/d-datatable-request';

let sortData1 = {
    prop1: SORT_DIR.ASC,
    prop2: SORT_DIR.DESC
}
createSortParams(sortData1);
/*
 результат выполнения будет следующим:
 {
    "order[0][name]": "prop1",
    "order[0][dir]": "asc",
    "order[1][name]": "prop2",
    "order[1][dir]": "desc"
}
 */

let sortData2 = [
    {title: "prop1", value: SORT_DIR.ASC},
    {title: "prop2", value: SORT_DIR.DESC}
]
createSortParams(sortData2, "title", "value");
/*
 результат выполнения будет следующим:
{
    "order[0][name]": "prop1",
    "order[0][dir]": "asc",
    "order[1][name]": "prop2",
    "order[1][dir]": "desc"
}
 */

let sortData3 = [
    {title: "prop1", value: false},
    {title: "prop2", value: true}
]
createSortParams(sortData3, "title", "value");
/*
 результат выполнения будет следующим:
{
    "order[0][name]": "prop1",
    "order[0][dir]": "desc",
    "order[1][name]": "prop2",
    "order[1][dir]": "asc"
}
 */

let sortData4 = [
    {title: "prop1", value: 0},
    {title: "prop2", value: 1}
]
createSortParams(sortData4, "title", "value");
/*
 результат выполнения будет следующим:
{
    "order[0][name]": "prop1",
    "order[0][dir]": "desc",
    "order[1][name]": "prop2",
    "order[1][dir]": "asc"
}
 */