prevent overlapping classes

This commit is contained in:
Yaman Qalieh 2016-10-23 16:19:08 -04:00
parent d2dbdb0cd3
commit 2bfe58b3f1
2 changed files with 25 additions and 16 deletions

View File

@ -175,21 +175,30 @@ Meteor.methods({
schools.findOne({
name: input.school
})) {
input.status = Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']);
input.admin = Meteor.userId();
Meteor.call('genCode', function(error, result) {
input.code = result;
});
if (input.category != "class" && input.category != "club") {
input.category = "other";
}
input.subscribers = [];
input.moderators = [];
input.banned = [];
if (classes.find({
status: true,
privacy: false,
teacher: input.teacher,
hour: input.hour
}).fetch().length < 1) {
input.status = Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']);
input.admin = Meteor.userId();
Meteor.call('genCode', function(error, result) {
input.code = result;
});
if (input.category != "class" && input.category != "club") {
input.category = "other";
}
input.subscribers = [];
input.moderators = [];
input.banned = [];
classes.insert(input, function(err, result) {
Meteor.call('joinClass', [result, input.code]);
});
classes.insert(input, function(err, result) {
Meteor.call('joinClass', [result, input.code]);
});
} else {
throw new Meteor.Error("overlap", "This teacher is already teaching a class elsewhere!")
}
} else {
throw new Meteor.Error("unauthorized", "You are not authorized to complete this action.");