summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--activitypub.js5
-rwxr-xr-xroutes.js75
-rwxr-xr-xviews/event.handlebars2
3 files changed, 42 insertions, 40 deletions
diff --git a/activitypub.js b/activitypub.js
index 8620e81..442f03c 100644
--- a/activitypub.js
+++ b/activitypub.js
@@ -341,8 +341,11 @@ function broadcastUpdateMessage(apObject, followers, eventID) {
}
function broadcastDeleteMessage(apObject, followers, eventID, callback) {
- if (!isFederated) return;
callback = callback || function () { };
+ if (!isFederated) {
+ callback([]);
+ return;
+ }
// we need to build an array of promises for each message we're sending, run Promise.all(), and then that will resolve when every message has been sent (or failed)
// per spec, each promise will execute *as it is built*, which is fine, we just need the guarantee that they are all done
let promises = [];
diff --git a/routes.js b/routes.js
index 8e0a282..76d20b9 100755
--- a/routes.js
+++ b/routes.js
@@ -1279,47 +1279,46 @@ router.post('/deleteevent/:eventID/:editToken', (req, res) => {
'Location': '/'
});
res.end();
+
+ // Send emails here otherwise they don't exist lol
+ if (sendEmails) {
+ const attendeeEmails = event.attendees.filter(o => o.status === 'attending' && o.email).map(o => o.email);
+ if (attendeeEmails.length) {
+ console.log("Sending emails to: " + attendeeEmails);
+ req.app.get('hbsInstance').renderView('./views/emails/deleteevent.handlebars', { siteName, siteLogo, domain, eventName: event.name, cache: true, layout: 'email.handlebars' }, function (err, html) {
+ const msg = {
+ to: attendeeEmails,
+ from: {
+ name: siteName,
+ email: contactEmail,
+ address: contactEmail
+ },
+ subject: `${siteName}: ${event.name} was deleted`,
+ html,
+ };
+ switch (mailService) {
+ case 'sendgrid':
+ sgMail.sendMultiple(msg).catch(e => {
+ console.error(e.toString());
+ res.status(500).end();
+ });
+ break;
+ case 'nodemailer':
+ nodemailerTransporter.sendMail(msg).catch(e => {
+ console.error(e.toString());
+ res.status(500).end();
+ });
+ break;
+ }
+ });
+ }
+ else {
+ console.log("Nothing to send!");
+ }
+ }
})
.catch((err) => { res.send('Sorry! Something went wrong (error deleting): ' + err); addToLog("deleteEvent", "error", "Attempt to delete event " + req.params.eventID + " failed with error: " + err); });
});
- // Send emails here otherwise they don't exist lol
- if (sendEmails) {
- Event.findOne({ id: req.params.eventID }).then((event) => {
- const attendeeEmails = event.attendees.filter(o => o.status === 'attending' && o.email).map(o => o.email);
- if (attendeeEmails.length) {
- console.log("Sending emails to: " + attendeeEmails);
- req.app.get('hbsInstance').renderView('./views/emails/deleteevent.handlebars', { siteName, siteLogo, domain, eventName: event.name, cache: true, layout: 'email.handlebars' }, function (err, html) {
- const msg = {
- to: attendeeEmails,
- from: {
- name: siteName,
- email: contactEmail,
- address: contactEmail
- },
- subject: `${siteName}: ${event.name} was deleted`,
- html,
- };
- switch (mailService) {
- case 'sendgrid':
- sgMail.sendMultiple(msg).catch(e => {
- console.error(e.toString());
- res.status(500).end();
- });
- break;
- case 'nodemailer':
- nodemailerTransporter.sendMail(msg).catch(e => {
- console.error(e.toString());
- res.status(500).end();
- });
- break;
- }
- });
- }
- else {
- console.log("Nothing to send!");
- }
- });
- }
}
else {
// Token doesn't match
diff --git a/views/event.handlebars b/views/event.handlebars
index ff88ba5..3071b64 100755
--- a/views/event.handlebars
+++ b/views/event.handlebars
@@ -377,7 +377,7 @@
<span aria-hidden="true">&times;</span>
</button>
</div>
- <form id="deleteEventForm" action="/deleteevent/{{eventData.id}}" method="post">
+ <form id="deleteEventForm" action="/deleteevent/{{eventData.id}}/{{eventData.editToken}}" method="post">
<div class="modal-body">
<p>Are you sure you want to delete this event? This action cannot be undone.</p>
</div>