UNPKG

@63pokupki/nodejs-common

Version:
104 lines 3.4 kB
"use strict"; 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