Add default events
parent
53d6695c3e
commit
c22e9c4c53
|
|
@ -0,0 +1,185 @@
|
||||||
|
var dbEvents = require('../../database/events');
|
||||||
|
var moment = require('moment-timezone');
|
||||||
|
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
ss:{
|
||||||
|
title: "Sunday School",
|
||||||
|
description: "Sunday School Service",
|
||||||
|
exists: false
|
||||||
|
},
|
||||||
|
sm: {
|
||||||
|
title: "Sunday Morning",
|
||||||
|
description: "Sunday Morning Worship Service",
|
||||||
|
exists: false
|
||||||
|
},
|
||||||
|
se: {
|
||||||
|
title: "Sunday Evening",
|
||||||
|
description: "Sunday Evening Service",
|
||||||
|
exists: false
|
||||||
|
},
|
||||||
|
we: {
|
||||||
|
title: "Wednesday Evening",
|
||||||
|
description: "Wednesday Evening Bible Study and Prayer",
|
||||||
|
exists: false
|
||||||
|
},
|
||||||
|
reset: function(){
|
||||||
|
this.ss.exists = false;
|
||||||
|
this.sm.exists = false;
|
||||||
|
this.se.exists = false;
|
||||||
|
this.we.exists = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getEvents = getEvents;
|
||||||
|
|
||||||
|
function getEvents(pageNumber, pageSize, callback){
|
||||||
|
dbEvents.getEvents(pageSize,pageNumber,function(err,events){
|
||||||
|
if (err){
|
||||||
|
callback(err,null);
|
||||||
|
}
|
||||||
|
if (pageNumber < 2 && events.length < 4){
|
||||||
|
addEventsToDB(events,pageNumber,pageSize,callback);
|
||||||
|
} else {
|
||||||
|
callback(null,events);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function addEventsToDB(currentEvents, pageNumber, pageSize, callback){
|
||||||
|
config.reset();
|
||||||
|
var now = new Date();
|
||||||
|
var offset = moment.tz.zone("America/Denver").offset(new Date());
|
||||||
|
|
||||||
|
config.ss.startTime = nextDay(now, 0, 10, 0, 0);
|
||||||
|
config.ss.endTime = nextDay(now, 0, 11, 0, 0);
|
||||||
|
config.sm.startTime = nextDay(now, 0, 11, 0, 0);
|
||||||
|
config.sm.endTime = nextDay(now, 0, 12, 30, 0);
|
||||||
|
config.se.startTime = nextDay(now, 0, 19, 0, 0);
|
||||||
|
config.se.endTime = nextDay(now, 0, 20, 30, 0);
|
||||||
|
|
||||||
|
config.we.startTime = nextDay(now, 3, 19, 0, 0);
|
||||||
|
config.we.endTime = nextDay(now, 3, 20, 30, 0);
|
||||||
|
|
||||||
|
for(var i = 0; i < currentEvents.length; i++){
|
||||||
|
if (currentEvents[i].title === config.ss.title){
|
||||||
|
config.ss.exists = true;
|
||||||
|
} else if (currentEvents[i].title === config.sm.title){
|
||||||
|
config.sm.exists = true;
|
||||||
|
} else if (currentEvents[i].title === config.se.title){
|
||||||
|
config.se.exists = true;
|
||||||
|
} else if (currentEvents[i].title === config.we.title){
|
||||||
|
config.we.exists = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
waitForAll(function(cb){
|
||||||
|
if (config.ss.exists == false){
|
||||||
|
config.ss.exists = false;
|
||||||
|
dbEvents.insertEvent(config.ss.title,config.ss.startTime,config.ss.endTime,offset,config.ss.description,function(error, event){
|
||||||
|
if (error){
|
||||||
|
cb("Error getting events");
|
||||||
|
} else {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
},function(cb){
|
||||||
|
if (config.sm.exists == false){
|
||||||
|
dbEvents.insertEvent(config.sm.title,config.sm.startTime,config.sm.endTime,offset,config.sm.description,function(error,event){
|
||||||
|
if (error){
|
||||||
|
cb("Error getting events");
|
||||||
|
} else {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
},function(cb){
|
||||||
|
if (config.se.exists == false){
|
||||||
|
dbEvents.insertEvent(config.se.title,config.se.startTime,config.se.endTime,offset,config.se.description,function(error,event){
|
||||||
|
if (error){
|
||||||
|
cb("Error getting events");
|
||||||
|
} else {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
},function(cb){
|
||||||
|
if (config.we.exists == false){
|
||||||
|
dbEvents.insertEvent(config.we.title,config.we.startTime,config.we.endTime,offset,config.we.description,function(error,event){
|
||||||
|
if (error){
|
||||||
|
cb("Error getting events");
|
||||||
|
} else {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
}).done(function(){
|
||||||
|
getEvents(pageNumber, pageSize, callback);
|
||||||
|
}).fail(function(err){
|
||||||
|
callback(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function nextDay(startDate, dayOfWeek, hour, minutes, offset){
|
||||||
|
startDate = new Date(startDate);
|
||||||
|
startDate.setDate(startDate.getDate() + (dayOfWeek+(7-startDate.getDay())) % 7);
|
||||||
|
startDate.setHours(hour);
|
||||||
|
startDate.setMinutes(minutes);
|
||||||
|
startDate.setSeconds(0);
|
||||||
|
startDate.setMilliseconds(0);
|
||||||
|
startDate.setTime(startDate.getTime() + (offset * 60000));
|
||||||
|
return startDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
function waitForAll(){
|
||||||
|
var doneCallback;
|
||||||
|
var failCallback;
|
||||||
|
var callbackCount = 0;
|
||||||
|
var error;
|
||||||
|
var argLength = arguments.length;
|
||||||
|
for(var i = 0; i < argLength; i++){
|
||||||
|
if (typeof arguments[i] === 'function'){
|
||||||
|
arguments[i](singleCallback)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function singleCallback(err){
|
||||||
|
error = err;
|
||||||
|
callbackCount += 1;
|
||||||
|
checkDone();
|
||||||
|
}
|
||||||
|
function checkDone(){
|
||||||
|
if (callbackCount == argLength && typeof error === 'undefined'){
|
||||||
|
if (typeof doneCallback === 'function'){
|
||||||
|
doneCallback();
|
||||||
|
}
|
||||||
|
} else if (typeof error !== 'undefined'){
|
||||||
|
if (typeof failCallback === 'function'){
|
||||||
|
failCallback(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function doneCB(cb){
|
||||||
|
doneCallback = cb;
|
||||||
|
checkDone();
|
||||||
|
return returnObj;
|
||||||
|
}
|
||||||
|
function failCB(cb){
|
||||||
|
failCallback = cb;
|
||||||
|
checkDone();
|
||||||
|
return returnObj;
|
||||||
|
}
|
||||||
|
var returnObj = {
|
||||||
|
done: doneCB,
|
||||||
|
fail: failCB
|
||||||
|
}
|
||||||
|
return returnObj;
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
var express = require('express');
|
var express = require('express');
|
||||||
var router = express.Router();
|
var router = express.Router();
|
||||||
var dbEvents = require('../../database/events');
|
var dbEvents = require('../../database/events');
|
||||||
|
var eventCreator = require('./event_creator');
|
||||||
var moment = require('moment-timezone');
|
var moment = require('moment-timezone');
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -19,60 +20,18 @@ router.get("/:id",function(req,res){
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get("/page/:page",function(req,res){
|
router.get("/page/:page",function(req,res){
|
||||||
console.log("page");
|
|
||||||
var pageSize = 5;
|
var pageSize = 5;
|
||||||
if (req.query.pageSize){
|
if (req.query.pageSize){
|
||||||
pageSize = parseInt(req.query.pageSize);
|
pageSize = parseInt(req.query.pageSize);
|
||||||
}
|
}
|
||||||
dbEvents.getEvents(pageSize,req.params.page,function(err,events){
|
eventCreator.getEvents(req.params.page,pageSize,function(err,events){
|
||||||
if (err){
|
if (err){
|
||||||
res.status(500).json({"status":500,"message":"Error processing request","error":err});
|
res.status(500).json({"status":500,"message":"Error processing request","error":err});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (req.params.page < 2 && events.length < 23){
|
else {
|
||||||
var now = new Date();
|
|
||||||
var offset = moment.tz.zone("America/Denver").offset(new Date());
|
|
||||||
var sundaySchool = nextDay(now, 0, 10, 0, offset);
|
|
||||||
var sundayMorning = nextDay(now, 0, 11, 0, offset);
|
|
||||||
var sundayMorningEnd = nextDay(now, 0, 12, 30, offset);
|
|
||||||
var sundayEvening = nextDay(now, 0, 19, 0, offset);
|
|
||||||
var sundayEveningEnd = nextDay(now, 0, 20, 30, offset);
|
|
||||||
|
|
||||||
var wednesday = nextDay(now, 3, 19, 0, offset);
|
|
||||||
var wednesdayEnd = nextDay(now, 3, 20, 30, offset);
|
|
||||||
if (wednesday < sundaySchool || 1 == 1){
|
|
||||||
events.push({
|
|
||||||
title: 'Wednesday Evening',
|
|
||||||
startDate: wednesdayEnd,
|
|
||||||
endDate: wednesdayEnd,
|
|
||||||
description: 'Bible study and prayer for Wednesday evening.'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
events.push({
|
|
||||||
title: 'Sunday School ' + offset,
|
|
||||||
startDate: sundaySchool,
|
|
||||||
endDate: sundayMorning,
|
|
||||||
description: 'Sunday School Service'
|
|
||||||
});
|
|
||||||
events.push({
|
|
||||||
title: 'Sunday Morning Worship',
|
|
||||||
startDate: sundayMorningEnd,
|
|
||||||
endDate: sundayMorningEnd,
|
|
||||||
description: 'Sunday Morning Worship Service'
|
|
||||||
});
|
|
||||||
events.push({
|
|
||||||
title: 'Sunday Evening',
|
|
||||||
startDate: sundayEveningEnd,
|
|
||||||
endDate: sundayEveningEnd,
|
|
||||||
description: 'Sunday Evening Service'
|
|
||||||
});
|
|
||||||
// id: json.id,
|
|
||||||
// title: json.title,
|
|
||||||
// startDate: new Date(json.startDate),
|
|
||||||
// endDate: new Date(json.endDate),
|
|
||||||
// description: json.description
|
|
||||||
}
|
|
||||||
res.status(200).json({"status":200,"events":events,"page":req.params.page,"pageSize":pageSize > events.length ? events.length : pageSize});
|
res.status(200).json({"status":200,"events":events,"page":req.params.page,"pageSize":pageSize > events.length ? events.length : pageSize});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -114,15 +73,5 @@ router.delete("/a/",function(req,res){
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function nextDay(startDate, dayOfWeek, hour, minutes, offset){
|
|
||||||
startDate = new Date(startDate);
|
|
||||||
startDate.setDate(startDate.getDate() + (dayOfWeek+(7-startDate.getDay())) % 7);
|
|
||||||
startDate.setHours(hour);
|
|
||||||
startDate.setMinutes(minutes);
|
|
||||||
startDate.setSeconds(0);
|
|
||||||
startDate.setMilliseconds(0);
|
|
||||||
startDate.setTime(startDate.getTime() + (offset * 60000));
|
|
||||||
return startDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
Loading…
Reference in New Issue