Перейти к основному содержимому

createDataProcessor

Description

Создает новый экземпляр dataProcessor и прикрепляет его к scheduler

createDataProcessor: (config: any) => any

Parameters

  • config - (required) string | object - конфигурационный объект dataProcessor

Returns

  • dataProcessor - (object) - объект dataProcessor

Example

const dp = scheduler.createDataProcessor({
url: "/api",
mode: "REST"
});

Details

Метод может принимать один из следующих типов параметров:

1. {url:string, mode:string} объект, задающий один из предопределённых режимов отправки данных

const dp = scheduler.createDataProcessor({
url: "/api",
mode: "REST"
});

где:

  • url - URL к серверу
  • mode - режим отправки данных на сервер: "JSON" | "REST-JSON" | "JSON" | "POST" | "GET"

2. Или объект router:

const dp = scheduler.createDataProcessor(router);

где router — либо функция:

// entity - "event"
// action - "create"|"update"|"delete"
// data - объект с деталями события
// id – id обрабатываемого объекта (события)
const dp = scheduler.createDataProcessor(function(entity, action, data, id) {
switch(action) {
case "create":
return scheduler.ajax.post(
server + "/" + entity,
data
);
break;
case "update":
return scheduler.ajax.put(
server + "/" + entity + "/" + id,
data
);
break;
case "delete":
return scheduler.ajax.del(
server + "/" + entity + "/" + id
);
break;
}
});

или объектом следующей структуры:

const dp = scheduler.createDataProcessor({ 
event: {
create: function(data) {},
update: function(data, id) {},
delete: function(id) {}
}
});

Все функции объекта router должны возвращать либо Promise, либо объект ответа данных. Это необходимо для того, чтобы dataProcessor мог применять идентификатор базы данных и подключать обработчик события onAfterUpdate к data processor.

router = function(entity, action, data, id) {
return new scheduler.Promise(function(resolve, reject) {
// … некоторая логика
return resolve({tid: databaseId});
});
}

Таким образом, вы можете использовать DataProcessor для сохранения данных в localStorage или в любом другом хранилище, не связанном с конкретным URL, или в случае, если существуют два разных сервера (URLs), ответственные за создание и удаление объектов.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.