UNPKG

1.94 kBJavaScriptView Raw
1export default class SimpleDataHandler {
2 constructor(dataObject) {
3 const {
4 data
5 } = window.af;
6 this.dataObject = dataObject;
7 this.fields = dataObject.getFields();
8 this.dataHandler = new data.DataProviderHandler({
9 dataSourceId: dataObject.getDataSourceId(),
10 timeout: 30000
11 });
12 }
13
14 arrayRecordToObject(record) {
15 const obj = {};
16
17 for (let i = 0; i < record.length; i++) {
18 obj[this.fields[i].name] = record[i];
19 }
20
21 return obj;
22 }
23
24 createRecord(record) {
25 return new Promise((resolve, reject) => {
26 this.dataHandler.create(record, (error, data) => {
27 if (error !== null) {
28 reject(error);
29 } else {
30 resolve(this.arrayRecordToObject(data));
31 }
32 });
33 });
34 }
35
36 deleteRecord(filter) {
37 return new Promise((resolve, reject) => {
38 this.dataHandler.destroy(filter, (error, data) => {
39 if (error !== null) {
40 reject(error);
41 } else {
42 resolve(this.arrayRecordToObject(data));
43 }
44 });
45 });
46 }
47
48 getData(filter) {
49 return new Promise((resolve, reject) => {
50 const filterData = {
51 filterString: "",
52 whereClause: typeof filter === "string" ? filter : "",
53 whereObject: typeof filter === "object" ? filter : null
54 };
55 this.dataHandler.retrieve(filterData, (error, data) => {
56 if (error !== null) {
57 reject(error);
58 } else {
59 const records = [];
60
61 for (let item of data) {
62 records.push(this.arrayRecordToObject(item));
63 }
64
65 resolve(records);
66 }
67 });
68 });
69 }
70
71 updateRecord(record) {
72 return new Promise((resolve, reject) => {
73 this.dataHandler.update(record, (error, data) => {
74 if (error !== null) {
75 reject(error);
76 } else {
77 resolve(this.arrayRecordToObject(data));
78 }
79 });
80 });
81 }
82
83}
\No newline at end of file