import { DataStore, DataTools, TypeCheck, isNullOrUndefined } from "@kangaroo-and-rabbit/kar-cw"; export class GenericDataService { protected dataStore: DataStore; setStore(dataStore: DataStore) { this.dataStore = dataStore; } gets(): Promise { return this.dataStore.getData(); } get(id: number): Promise { let self = this; return new Promise((resolve, reject) => { self.gets() .then((response: TYPE[]) => { let data = DataTools.get(response, id); if (isNullOrUndefined(data)) { reject('Data does not exist in the local BDD'); return; } resolve(data); return; }).catch((response) => { reject(response); }); }); } getAll(ids: number[]): Promise { let self = this; return new Promise((resolve, reject) => { self.gets() .then((response: TYPE[]) => { let data = DataTools.getsWhere(response, [ { check: TypeCheck.EQUAL, key: 'id', value: ids, }, ]); resolve(data); return; }).catch((response) => { reject(response); }); }); } getLike(value: string): Promise { let self = this; return new Promise((resolve, reject) => { self.gets() .then((response: TYPE[]) => { let data = DataTools.getNameLike(response, value); if (isNullOrUndefined(data) || data.length === 0) { reject('Data does not exist in the local BDD'); return; } resolve(data); return; }).catch((response) => { reject(response); }); }); } getOrder(): Promise { let self = this; return new Promise((resolve, reject) => { self.gets() .then((response: TYPE[]) => { let data = DataTools.getsWhere(response, [ { check: TypeCheck.NOT_EQUAL, key: 'id', value: [undefined, null], }, ], ["name", "id"], ); resolve(data); }).catch((response) => { console.log(`[E] ${self.constructor.name}: can not retrieve BDD values`); reject(response); }); }); } }