@universis/candidates
Version:
Universis api server plugin for study program candidates, internship selection etc
100 lines (84 loc) • 4.91 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });exports.studyProgramEnrollmentEventRouter = studyProgramEnrollmentEventRouter;var _express = _interopRequireDefault(require("express"));
var _multer = require("./middlewares/multer");
var _common = require("@themost/common");
var _path = _interopRequireDefault(require("path"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}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);});};}
function studyProgramEnrollmentEventRouter(configuration) {
const router = _express.default.Router();
const upload = (0, _multer.multerInstance)(configuration);
upload.storage.getDestination(null, null, (err, destination) => {
if (err) {
_common.TraceUtils.error(`Routes: An error occurred while initializing instructors router.`);
return _common.TraceUtils.error(err);
}
_common.TraceUtils.info(`Routes: Instructors router starts using "${_path.default.resolve(destination)}" as user storage.`);
});
const validateUser = /*#__PURE__*/function () {var _ref = _asyncToGenerator(function* (context, enrollmentEventId) {
const enrollmentEvent = yield context.
model('StudyProgramEnrollmentEvent').
where('viewers/name').
equal(context.user.name).
and("id").
equal(enrollmentEventId).
select('id').
value();
if (enrollmentEvent) {
return true;
}
return false;
});return function validateUser(_x, _x2) {return _ref.apply(this, arguments);};}();
router.post('/:id/requests/:request/review', /*#__PURE__*/function () {var _getEntity = _asyncToGenerator(function* (req, res, next) {
try {
const request = yield req.context.model('StudyProgramRegisterAction').where('id').equal(req.params.request).silent().getTypedItem();
yield request.setReview(req.body);
return res.json();
} catch (err) {
return next(err);
}
});function getEntity(_x3, _x4, _x5) {return _getEntity.apply(this, arguments);}return getEntity;}());
router.get('/:id/requests/:request/messages', /*#__PURE__*/function () {var _getEntity2 = _asyncToGenerator(function* (req, res, next) {
try {
const context = req.context;
const enrollmentEvent = req.params.id;
const request = req.params.request;
let query = context.
model('StudyProgramRegisterActionMessage').
where('action').
equal(request).
expand(
{
name: 'attachments' },
{
name: 'sender',
options: {
$select: 'id,name,alternateName' } }).
orderByDescending('dateCreated');
if ((yield validateUser(context, enrollmentEvent)) === true) {
return res.json(yield query.silent().getItems());
}
return res.json(yield query.getItems());
} catch (err) {
return next(err);
}
});function getEntity(_x6, _x7, _x8) {return _getEntity2.apply(this, arguments);}return getEntity;}());
router.post('/:id/requests/:request/message', /*#__PURE__*/function () {var _getEntity3 = _asyncToGenerator(function* (req, res, next) {
try {
const request = yield req.context.model('StudyProgramRegisterAction').where('id').equal(req.params.request).silent().getTypedItem();
yield request.postMessages(req.body);
return res.json();
} catch (err) {
return next(err);
}
});function getEntity(_x9, _x10, _x11) {return _getEntity3.apply(this, arguments);}return getEntity;}());
router.post('/:id/requests/:request/sendMessage', upload.single('attachment'), /*#__PURE__*/function () {var _sendCourseClassStudentMessages = _asyncToGenerator(function* (req, res, next) {
try {
const request = yield req.context.model('StudyProgramRegisterAction').where('id').equal(req.params.request).silent().getTypedItem();
yield request.sendMessage(req.file, req.body);
return res.json();
}
catch (err) {
return next(err);
}
});function sendCourseClassStudentMessages(_x12, _x13, _x14) {return _sendCourseClassStudentMessages.apply(this, arguments);}return sendCourseClassStudentMessages;}());
return router;
}
//# sourceMappingURL=studyProgramEnrollmentEventRouter.js.map