createDataProcessor
Description
Erzeugt eine neue dataProcessor-Instanz und verknüpft sie mit dem Scheduler
createDataProcessor: (config: any) => any
Parameters
config- (required) string | object - ein Konfigurationsobjekt für den dataProcessor
Returns
dataProcessor- (object) - die resultierende dataProcessor-Instanz
Example
const dp = scheduler.createDataProcessor({
url: "/api",
mode: "REST"
});
Details
Diese Methode akzeptiert einen der folgenden Parametertypen:
1. Ein Objekt mit {url:string, mode:string}, das eine vordefinierte Art angibt, Daten zu senden
const dp = scheduler.createDataProcessor({
url: "/api",
mode: "REST"
});
wobei:
- url - der Server-Endpunkt
- mode - die Methode zum Senden von Daten: "JSON" | "REST-JSON" | "JSON" | "POST" | "GET"
2. Alternativ kann ein benutzerdefiniertes Router-Objekt übergeben werden:
const dp = scheduler.createDataProcessor(router);
Hier kann der Router eine Funktion sein:
// entity - "event"
// action - "create"|"update"|"delete"
// data - ein Objekt mit Event-Details
// id – die ID des verarbeiteten Objekts (Event)
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;
}
});
oder ein Objekt, das folgendermaßen aufgebaut ist:
const dp = scheduler.createDataProcessor({
event: {
create: function(data) {},
update: function(data, id) {},
delete: function(id) {}
}
});
Jede Funktion im Router-Objekt sollte entweder ein Promise oder ein Daten-Antwortobjekt zurückgeben. Dies ermöglicht es dem dataProcessor, die Datenbank-ID zu aktualisieren und das onAfterUpdate-Event zu verbinden.
router = function(entity, action, data, id) {
return new scheduler.Promise(function(resolve, reject) {
// … einige Logik
return resolve({tid: databaseId});
});
}
Diese Flexibilität erlaubt es dem DataProcessor, Daten in localStorage oder anderen Speichertypen zu sichern, die nicht an eine bestimmte URL gebunden sind, oder wenn verschiedene Server (URLs) für Erstellung und Löschung zuständig sind.