67 lines
2.3 KiB
JavaScript
67 lines
2.3 KiB
JavaScript
Meteor.methods({
|
|
setReviewer: function (studyInstanceUid) {
|
|
var study = Studies.findOne({
|
|
studyInstanceUid: studyInstanceUid
|
|
});
|
|
|
|
if (!study) {
|
|
return;
|
|
}
|
|
|
|
var timepoint = Timepoints.findOne({
|
|
timepointId: study.timepointId
|
|
});
|
|
|
|
if (!timepoint) {
|
|
return;
|
|
}
|
|
|
|
var reviewerTimepoint = Reviewers.findOne({timepointId: timepoint.timepointId});
|
|
var user = Meteor.users.findOne(Meteor.userId());
|
|
if (reviewerTimepoint) {
|
|
if (reviewerTimepoint.reviewers) {
|
|
|
|
// Check whether the user exists
|
|
var isReviewerFound = reviewerTimepoint.reviewers.filter(function ( reviewer ) {
|
|
return reviewer.userId === user._id;
|
|
})[0];
|
|
|
|
// Return if user eixistes for related timepoint
|
|
if (isReviewerFound) {
|
|
return;
|
|
}
|
|
var existedReviewers = reviewerTimepoint.reviewers;
|
|
existedReviewers.push({userId: user._id, userName: user.profile.fullName});
|
|
|
|
// Update reviewers array after pushing the user
|
|
Reviewers.update(reviewerTimepoint._id, {$set: {reviewers: existedReviewers}});
|
|
|
|
} else {
|
|
Reviewers.update(reviewerTimepoint._id, {$set: {reviewers: [{userId: user._id, userName: user.profile.fullName}]}});
|
|
}
|
|
} else {
|
|
Reviewers.insert({timepointId: timepoint.timepointId, reviewers: [{userId: user._id, userName: user.profile.fullName}]});
|
|
}
|
|
},
|
|
|
|
removeReviewer: function (timepointId) {
|
|
var reviewerTimepoint = Reviewers.findOne({timepointId: timepointId});
|
|
if (!reviewerTimepoint || !reviewerTimepoint.reviewers) {
|
|
return;
|
|
}
|
|
|
|
// Initalize a new array without the current user
|
|
var reviewers = reviewerTimepoint.reviewers.filter(function ( reviewer ) {
|
|
return reviewer.userId !== Meteor.userId();
|
|
});
|
|
Reviewers.update(reviewerTimepoint._id, {$set: {reviewers: reviewers}});
|
|
},
|
|
|
|
removeUserFromReviewers: function(userId) {
|
|
Reviewers.find().map(function (timepoint) {
|
|
Reviewers.update({_id: timepoint._id}, {"$pull": {"reviewers": {"userId": userId}}});
|
|
});
|
|
}
|
|
});
|
|
|