alphascript-server
Version:
CRUD operations for mongo and other functionalities to get started quickly in any CMS project
82 lines (69 loc) • 1.83 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;
}