UNPKG

alphascript-server

Version:

CRUD operations for mongo and other functionalities to get started quickly in any CMS project

77 lines (64 loc) 2.02 kB
var api = require('../../../../'); module.exports = { collection: function(req) { return api.common.Holiday; }, populate: "country", sort: { "name": 1 }, limit: 0, beforeAdd: function(data, callback) { callback(null, data); }, afterAdd: function(data, callback) { callback(null, data); }, beforeEdit: function(data, callback) { callback("Não é permitido alterar feriados"); }, afterEdit: function(data, callback) { callback("Não é permitido alterar feriados"); }, remove: function(id, callback) { callback("Não é permitido eliminar feriados"); }, getDayHolidays: function(day, callback) { api.common.Holiday.find(function(err, holidays) { if (err) { api.error.log(err); return callback(err); } callback(null, holidays.filter(function(holiday) { return dayMatch(holiday, day); })); }); }, getDayHolidaysSync: function(day, holidays) { return holidays.filter(function(holiday) { return dayMatch(holiday, day); }); } }; function dayMatch(holiday, thisDay) { var date; thisDay = new Date(thisDay); var dayToday = thisDay.getDate(); var monthToday = thisDay.getMonth() + 1; var currentYear = thisDay.getFullYear(); switch (holiday.format) { case 'static': var day = holiday.date.split('/')[0]; var month = holiday.date.split('/')[1]; date = new Date(currentYear + '/' + month + '/' + day); break; case 'dynamic': try { eval('my_function = ' + holiday.formula); date = my_function(currentYear); } catch (err) { api.error.log(err); return false; } break; } return (dayToday === date.getDate() && monthToday === (date.getMonth() + 1)); }