126 lines
4.9 KiB
JavaScript
126 lines
4.9 KiB
JavaScript
var express = require('express');
|
|
var router = express.Router();
|
|
var dbEvents = require('../../database/events');
|
|
var moment = require('moment-timezone');
|
|
|
|
|
|
router.get("/:id",function(req,res){
|
|
dbEvents.getEvent(req.params.id,function(error,event){
|
|
if (error){
|
|
res.status(404).json({"status":404,"message":"Error processing request"});
|
|
return;
|
|
}
|
|
if (event == null){
|
|
res.status(404).json({"status":404,"message":"Event does not exist"});
|
|
return;
|
|
}
|
|
res.status(200).json({"status":200,"event":event});
|
|
});
|
|
});
|
|
|
|
router.get("/page/:page",function(req,res){
|
|
console.log("page");
|
|
var pageSize = 5;
|
|
if (req.query.pageSize){
|
|
pageSize = parseInt(req.query.pageSize);
|
|
}
|
|
dbEvents.getEvents(pageSize,req.params.page,function(err,events){
|
|
if (err){
|
|
res.status(500).json({"status":500,"message":"Error processing request","error":err});
|
|
return;
|
|
}
|
|
if (req.params.page < 2 && events.length < 23){
|
|
var offset = moment.tz("Mountain/Denver").offset(new Date());
|
|
var nowMountain = moment.tz(new Date(),"Mountain/Denver");
|
|
var nextSundayMorning = nextDay(nowMountain, 0, 7);
|
|
var nextSundayMorning2 = nextDay(nowMountain, 0, 11);
|
|
var nextSundayEvening = nextDay(nowMountain, 0, 19);
|
|
var nextWednesday = nextDay(nowMountain, 3, 7, 19);
|
|
if (nextWednesday < nextSundayMorning){
|
|
nextWednesday.setHours(19);
|
|
nextWednesday.setMinutes(0);
|
|
nextWednesday.setSeconds(0);
|
|
events.push({
|
|
title: 'Wednesday Evening',
|
|
startDate: nextWednesday,
|
|
endDate: new Date(nextWednesday).setHours(20),
|
|
description: 'Bible study and prayer for Wednesday evening.'
|
|
});
|
|
}
|
|
events.push({
|
|
title: 'Sunday School ' + offset,
|
|
startDate: moment.tz(nextSundayMorning,"America/Denver").format(),
|
|
endDate: new Date(nextSundayMorning).setHours(11),
|
|
description: 'Sunday School Service'
|
|
});
|
|
events.push({
|
|
title: 'Sunday Morning Worship',
|
|
startDate: nextSundayMorning2,
|
|
endDate: new Date(nextSundayMorning2).setHours(12),
|
|
description: 'Sunday Morning Worship Service'
|
|
});
|
|
events.push({
|
|
title: 'Sunday Evening',
|
|
startDate: nextSundayEvening,
|
|
endDate: new Date(nextSundayEvening).setHours(20),
|
|
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});
|
|
});
|
|
});
|
|
|
|
|
|
router.post("/a/", function(req,res){
|
|
console.log(req.body);
|
|
if (!req.body.title || !req.body.startDate || !req.body.endDate || !req.body.description){
|
|
removeFile(req.body.tmpPath);
|
|
res.status(400).json({"status":400,"message":"title, startDate, endDate, and description are required fields in the body"});
|
|
return;
|
|
}
|
|
|
|
dbEvents.insertEvent(req.body.title,req.body.startDate,req.body.endDate,req.body.timezoneOffset,req.body.description,function(error,event){
|
|
if (error){
|
|
res.status(500).json({"status":500,"message":"There was an error inserting the event"});
|
|
return;
|
|
}
|
|
if (event == null){
|
|
res.status(404).json({"status":404,"message":"Event does not exist"});
|
|
return;
|
|
}
|
|
res.status(201).json({"status":201,"event":event});
|
|
return;
|
|
});
|
|
});
|
|
|
|
router.delete("/a/",function(req,res){
|
|
if (!req.body.id){
|
|
res.status(400).json({"status":400,"message":"id of the event needs to be supplied to delete"});
|
|
return;
|
|
}
|
|
dbEvents.deleteEvent(req.body.id,function(error,result){
|
|
if (error){
|
|
res.status(500).json({"status":500,"message":"There was an error deleting the event"});
|
|
return;
|
|
}
|
|
res.status(200).json({"status":200,"affectedRows":result.affectedRows});
|
|
|
|
});
|
|
});
|
|
|
|
function nextDay(startDate, dayOfWeek, hour){
|
|
startDate = new Date(startDate);
|
|
startDate.setDate(startDate.getDate() + (dayOfWeek+(7-startDate.getDay())) % 7);
|
|
startDate.setHours(hour);
|
|
startDate.setMinutes(0);
|
|
startDate.setSeconds(0);
|
|
startDate.setMilliseconds(0);
|
|
return startDate;
|
|
}
|
|
|
|
module.exports = router; |