UNPKG

@universis/dining

Version:

Universis api for dining

87 lines (71 loc) 2.29 kB
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.beforeSave = beforeSave;exports.afterSave = afterSave;var _data = require("@themost/data"); var _common = require("@themost/common"); var _util = require("util"); async function beforeSaveAsync(event) { // if (event.state !== 2) { return; } const context = event.model.context; const previous = event.previous; if (previous == null) { throw new _common.DataError('E_PREVIOUS', 'The previous state of the object cannot be determined'); } const target = event.target; if (target.active === false && previous.active === true) { // get validator listener const validator = new _data.DataPermissionEventListener(); // noinspection JSUnresolvedFunction const validateAsync = (0, _util.promisify)(validator.validate). bind(validator); // validate StudentDiningCard/Cancel execute permission const validateEvent = { model: context.model('StudentDiningCard'), privilege: 'StudentDiningCard/Cancel', mask: _data.PermissionMask.Execute, target: event.target && event.target.id, throwError: true }; await validateAsync(validateEvent); } } async function afterSaveAsync(event) { if (event.state !== 2) { return; } const context = event.model.context; const previous = event.previous; if (previous == null) { throw new _common.DataError('E_PREVIOUS', 'The previous state of the object cannot be determined'); } const target = event.target; if (target.active === false && previous.active === true) { //save await context.model('CancelDiningCardAction').save({ diningCard: target.id, actionStatus: { alternateName: 'CompletedActionStatus' } }); } } /** * @param {DataEventArgs} event * @param {Function} callback */ function beforeSave(event, callback) { return beforeSaveAsync(event).then(() => { return callback(); }).catch(err => { return callback(err); }); } /** * @param {DataEventArgs} event * @param {Function} callback */ function afterSave(event, callback) { return afterSaveAsync(event).then(() => { return callback(); }).catch(err => { return callback(err); }); } //# sourceMappingURL=OnReactivateDiningCardListener.js.map