@63pokupki/nodejs-common
Version:
Common nodejs functionality
104 lines • 3.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LogicSys = void 0;
const lib_1 = require("@63pokupki/components/lib");
/**
* Система логическая система
* Логические функции управления приложением
*/
class LogicSys {
constructor(ctx) {
this.ctx = ctx;
this.errorSys = ctx.sys.errorSys;
this.userSys = ctx.sys.userSys;
}
// /**
// * TODO
// * Включить запросы на базу данных
// */
// fMasterDBOn(): void {
// this.ctx.sys.bMasterDB = true;
// }
// /**
// * TODO
// * Отключить запросы на мастер базу данных
// */
// fMasterDBOff(): void {
// this.ctx.sys.bMasterDB = false;
// }
/**
* Включить кеш редиса
*/
fCacheOn() {
this.ctx.sys.bCache = true;
}
/**
* Выключить кеш редиса
*/
fCacheOff() {
this.ctx.sys.bCache = false;
}
/**
* Логический блок
* @param sError - Сообщение об ощибке
* @param callback - функция содержащая логическую операцию
*/
async ifOk(sError, callback) {
let out = null;
if (this.errorSys.isOk()) {
try {
out = await callback();
this.errorSys.devNotice('ifok', sError);
}
catch (e) {
this.errorSys.errorEx(e, 'ifok', sError);
}
}
return out;
}
/**
* Блок для валидации входных данных
* Выбрасывает ошибку в случае не правильности данных
*/
fValidData(vModelRules, data) {
const validator = new lib_1.ModelValidatorSys(this.errorSys);
let validData = null;
if (validator.fValid(vModelRules.get(), data)) {
validData = validator.getResult();
}
else {
const e = this.errorSys.throwValid('Ошибка входных данных');
this.errorSys.errorEx(e, 'valid_data', 'Ошибка входных данных');
throw e;
}
return validData;
}
// /**
// * TODO устаревший код удалить
// * Блок для выполнения запросов на мастер базу данных
// * @param callback - функция содержащая логическую операцию
// */
// async faQueryMasterDB(sError: string, callback: Function): Promise<any> {
// this.ctx.sys.bMasterDB = true;
// let out = null;
// try {
// out = await callback();
// this.errorSys.devNotice('query_master_db', sError);
// } catch (e) {
// this.errorSys.error('query_master_db', sError);
// throw e;
// }
// this.ctx.sys.bMasterDB = false;
// return out;
// }
/**
* Блок для генерации ошибки без индексирования в API
* @param error
*/
fThrowNoIndex(error) {
this.ctx.sys.errorSys.error('stop_execute_no_error', error.message);
return error;
}
}
exports.LogicSys = LogicSys;
//# sourceMappingURL=LogicSys.js.map