summaryrefslogtreecommitdiff
path: root/routes.js
diff options
context:
space:
mode:
Diffstat (limited to 'routes.js')
-rwxr-xr-xroutes.js85
1 files changed, 81 insertions, 4 deletions
diff --git a/routes.js b/routes.js
index b9b9cdf..cd81da5 100755
--- a/routes.js
+++ b/routes.js
@@ -71,6 +71,11 @@ function render_plain () {
}
const ical = require('ical');
+const icalGenerator = require('ical-generator');
+const cal = icalGenerator({
+ domain: domain,
+ name: siteName
+});
const sgMail = require('@sendgrid/mail');
@@ -568,6 +573,42 @@ router.get('/group/:eventGroupID', (req, res) => {
});
})
+router.get('/exportevent/:eventID', (req, res) => {
+ Event.findOne({
+ id: req.params.eventID
+ })
+ .populate('eventGroup')
+ .then((event) => {
+ if (event) {
+ const icalEvent = cal.createEvent({
+ start: moment.tz(event.start, event.timezone),
+ end: moment.tz(event.start, event.timezone),
+ timezone: event.timezone,
+ timestamp: moment(),
+ summary: event.name,
+ description: event.description,
+ organizer: {
+ name: event.hostName ? event.hostName : "Anonymous",
+ email: event.creatorEmail
+ },
+ location: event.location,
+ url: 'https://gath.io/' + event.id
+ });
+
+ let string = cal.toString();
+ console.log(string)
+ res.send(string);
+ }
+ })
+ .catch((err) => {
+ addToLog("exportEvent", "error", "Attempt to export event " + req.params.eventID + " failed with error: " + err);
+ console.log(err)
+ res.status(404);
+ res.render('404', { url: req.url });
+ return;
+ });
+})
+
// BACKEND ROUTES
//router.post('/login',
@@ -697,7 +738,7 @@ router.post('/importevent', (req, res) => {
image: '',
creatorEmail: creatorEmail,
url: '',
- hostName: importedEventData.organizer ? importedEventData.organizer.params.CN : "",
+ hostName: importedEventData.organizer ? importedEventData.organizer.params.CN.replace(/["]+/g, '') : "",
viewPassword: '',
editPassword: '',
editToken: editToken,
@@ -1016,11 +1057,46 @@ router.post('/editeventgroup/:eventGroupID/:editToken', (req, res) => {
.catch((err) => { console.error(err); res.send('Sorry! Something went wrong!'); addToLog("editEventGroup", "error", "Attempt to edit event group " + req.params.eventGroupID + " failed with error: " + err);});
});
+router.post('/deleteimage/:eventID/:editToken', (req, res) => {
+ let submittedEditToken = req.params.editToken;
+ Event.findOne(({
+ id: req.params.eventID,
+ }))
+ .then((event) => {
+ if (event.editToken === submittedEditToken) {
+ // Token matches
+ if (event.image){
+ eventImage = event.image;
+ } else {
+ res.status(500).send('This event doesn\'t have a linked image. What are you even doing');
+ }
+ fs.unlink(global.appRoot + '/public/events/' + eventImage, (err) => {
+ if (err) {
+ res.status(500).send(err);
+ addToLog("deleteEventImage", "error", "Attempt to delete event image for event " + req.params.eventID + " failed with error: " + err);
+ }
+ // Image removed
+ addToLog("deleteEventImage", "success", "Image for event " + req.params.eventID + " deleted");
+ event.image = "";
+ event.save()
+ .then(response => {
+ res.status(200).send('Success');
+ })
+ .catch(err => {
+ res.status(500).send(err);
+ addToLog("deleteEventImage", "error", "Attempt to delete event image for event " + req.params.eventID + " failed with error: " + err);
+ })
+ });
+ }
+ });
+});
+
router.post('/deleteevent/:eventID/:editToken', (req, res) => {
let submittedEditToken = req.params.editToken;
+ let eventImage;
Event.findOne(({
id: req.params.eventID,
- }))
+ }))
.then((event) => {
if (event.editToken === submittedEditToken) {
// Token matches
@@ -1156,7 +1232,8 @@ router.post('/attendevent/:eventID', (req, res) => {
const newAttendee = {
name: req.body.attendeeName,
status: 'attending',
- email: req.body.attendeeEmail
+ email: req.body.attendeeEmail,
+ removalPassword: req.body.removeAttendancePassword
};
Event.findOne({
@@ -1198,7 +1275,7 @@ router.post('/attendevent/:eventID', (req, res) => {
router.post('/unattendevent/:eventID', (req, res) => {
Event.update(
{ id: req.params.eventID },
- { $pull: { attendees: { email: req.body.attendeeEmail } } }
+ { $pull: { attendees: { removalPassword: req.body.removeAttendancePassword } } }
)
.then(response => {
console.log(response)