erzeugt eine neue dataProcessor-Instanz und verknüpft sie mit dem Scheduler
config | string|object | ein Konfigurationsobjekt für den dataProcessor |
object | die resultierende dataProcessor-Instanz |
var dp = scheduler.createDataProcessor({
url: "/api",
mode: "REST"
});
Diese Methode akzeptiert einen der folgenden Parametertypen:
1. Ein Objekt mit {url:string, mode:string}
, das eine vordefinierte Art angibt, Daten zu senden
var dp = scheduler.createDataProcessor({
url: "/api",
mode: "REST"
});
wobei:
2. Alternativ kann ein benutzerdefiniertes Router-Objekt übergeben werden:
var 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)
var 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:
var 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.