alphascript-server
Version:
CRUD operations for mongo and other functionalities to get started quickly in any CMS project
61 lines (49 loc) • 1.49 kB
JavaScript
var moment = require('moment');
module.exports = {
extract: extract,
pad: pad,
collisionDetection: collisionDetection,
getMinutes: getMinutes
};
function pad(num, size) {
var s = num + "";
while (s.length < size) s = "0" + s;
return s;
}
function extract(date) {
try {
return moment(date).format('YYYY-MM-DD');
} catch (err) {
return extract(new Date(date));
}
}
function collisionDetection(start, end, events) {
start = extract(start);
end = end ? extract(end) : start;
if (end < start) return null;
for (var i = 0; i < events.length; i++) {
if (events[i].approval) {
if (events[i].approval.cancelled) continue;
if (events[i].approval.level < events[i].approval.maxLevel) continue;
}
var eventStart = extract(events[i].dateStart);
var eventEnd = eventStart;
if (events[i].dateEnd) eventEnd = extract(events[i].dateEnd);
// $ |__$__|
if (eventEnd > start && eventEnd <= end) return true;
// |__$__| $
if (eventStart >= start && eventStart < end) return true;
// $ |____| $
if (eventStart <= start && eventEnd >= end) return true;
// |___$___$____|
if (eventStart >= start && eventEnd <= end) return true;
}
return false;
}
function getMinutes(time) {
var HourMinutes = time.split(':');
if (HourMinutes.length == 1) HourMinutes.push(0);
var hours = parseInt(HourMinutes[0]);
var minutes = parseInt(HourMinutes[1]);
return hours * 60 + minutes;
}