summaryrefslogtreecommitdiff
path: root/routes.js
diff options
context:
space:
mode:
authorlowercasename <raphaelkabo@gmail.com>2020-01-02 20:24:55 +1100
committerlowercasename <raphaelkabo@gmail.com>2020-01-02 20:24:55 +1100
commit60d99e4d35568b3fb76eb26f0284236b4cd602c3 (patch)
tree0dd8a3562557b6232631f3bfa4c69174bde0bfc1 /routes.js
parent0c46e2d2d148efb7cfabcf82c12266a8d788f551 (diff)
Export as ICS functionality
Diffstat (limited to 'routes.js')
-rwxr-xr-xroutes.js43
1 files changed, 42 insertions, 1 deletions
diff --git a/routes.js b/routes.js
index ee723e2..f2bca02 100755
--- a/routes.js
+++ b/routes.js
@@ -62,6 +62,11 @@ render_plain = function () {
}
const ical = require('ical');
+const icalGenerator = require('ical-generator');
+const cal = icalGenerator({
+ domain: 'gath.io',
+ name: 'Gathio'
+});
const sgMail = require('@sendgrid/mail');
@@ -408,6 +413,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',
@@ -529,7 +570,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,