UNPKG

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
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; }