@universis/candidates
Version:
Universis api server plugin for study program candidates, internship selection etc
47 lines (43 loc) • 1.61 kB
JavaScript
import { DataObject, EdmMapping } from "@themost/data";
.entityType('CourseClasRegisterAction')
class CourseClasRegisterAction extends DataObject {
/**
* Gets item review
*/
.func('review', 'CourseClassRegisterActionReview')
getReview() {
return this.context.model('CourseClassRegisterActionReview')
.where('itemReviewed').equal(this.getId()).prepare();
}
/**
* Set item review
* @param {*} item
*/
.param('item', 'CourseClassRegisterActionReview', true, true)
.action('review', 'CourseClassRegisterActionReview')
async setReview(item) {
const CourseClassRegisterActionReviews = this.context.model('CourseClassRegisterActionReview');
// infer object state
const currentReview = await CourseClassRegisterActionReviews.where('itemReviewed').equal(this.getId()).getItem();
if (currentReview == null) {
if (item == null) {
return;
}
// a new item is going to be inserted
delete item.id;
// set reviewed item
item.itemReviewed = this.getId();
} else {
if (item == null) {
// delete review
CourseClassRegisterActionReviews.remove(currentReview);
}
// up
item.id = currentReview.id;
// set reviewed item
item.itemReviewed = this.getId();
}
return CourseClassRegisterActionReviews.save(item);
}
}
module.exports = CourseClasRegisterAction;