@universis/candidates
Version:
Universis api server plugin for study program candidates, internship selection etc
59 lines (32 loc) • 2.55 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });exports.afterSave = afterSave;exports.beforeSave = beforeSave;var _data = require("@themost/data");function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}
/**
* @param {DataEventArgs} event
*/function
beforeSaveAsync(_x) {return _beforeSaveAsync.apply(this, arguments);}
/**
* @param {DataEventArgs} event
*/function _beforeSaveAsync() {_beforeSaveAsync = _asyncToGenerator(function* (event) {});return _beforeSaveAsync.apply(this, arguments);}function
afterSaveAsync(_x2) {return _afterSaveAsync.apply(this, arguments);}
/**
* @param {DataEventArgs} event
* @param {Function} callback
*/function _afterSaveAsync() {_afterSaveAsync = _asyncToGenerator(function* (event) {// get context
const context = event.model.context;if (event.state === _data.DataObjectState.Insert) {// create application user
const candidateGroup = yield context.model('Group').where('name').equal('Candidates').silent().getItem();if (!candidateGroup) {throw new Error('Candidates group is missing');} // TODO: Change this when user model becomes updatable
const applicationUser = { userId: event.target.id, applicationId: 'GRWEB', roleId: candidateGroup.id }; // // save applicationUser
yield context.model('ApplicationUser').silent().save(applicationUser); // add user to groupMembers
event.target.groups = [candidateGroup.id];yield context.model('CandidateUser').silent().save(event.target);}});return _afterSaveAsync.apply(this, arguments);}function afterSave(event, callback) {return afterSaveAsync(event).then(() => {return callback();}).catch(err => {return callback(err);
});
}
/**
* @param {DataEventArgs} event
* @param {Function} callback
*/
function beforeSave(event, callback) {
return beforeSaveAsync(event).then(() => {
return callback();
}).catch(err => {
return callback(err);
});
}
//# sourceMappingURL=candidate-user-listener.js.map