diff options
author | Raphael <raphaelkabo@hey.com> | 2023-05-12 17:03:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-12 17:03:13 +0100 |
commit | 67cf89fd0cfdf56c7e6d6d9bdf93d95d679ce2a1 (patch) | |
tree | c66bdf874a210997cd1d84942101773ba0175b20 /src/helpers.js | |
parent | a75aad783c117aaef2ec19b6b434be0f0d7e57de (diff) | |
parent | 50688f573054f60aa7594672615f11713173c147 (diff) |
Merge pull request #95 from lowercasename/typescript
Migrate to TypeScript and PNPM
Diffstat (limited to 'src/helpers.js')
-rw-r--r-- | src/helpers.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/helpers.js b/src/helpers.js new file mode 100644 index 0000000..9b7559f --- /dev/null +++ b/src/helpers.js @@ -0,0 +1,59 @@ +const domain = require("./config/domain.js").domain; +const siteName = require("./config/domain.js").sitename; + +const mongoose = require("mongoose"); +const Log = mongoose.model("Log"); +var moment = require("moment-timezone"); +const icalGenerator = require("ical-generator"); + +// LOGGING + +function addToLog(process, status, message) { + let logEntry = new Log({ + status: status, + process: process, + message: message, + timestamp: moment(), + }); + logEntry.save().catch(() => { + console.log("Error saving log entry!"); + }); +} + +function exportIcal(events, calendarName) { + // Create a new icalGenerator... generator + const cal = icalGenerator({ + name: calendarName || siteName, + x: { + "X-WR-CALNAME": calendarName || siteName, + }, + }); + if (events instanceof Array === false) { + events = [events]; + } + events.forEach((event) => { + // Add the event to the generator + cal.createEvent({ + start: moment.tz(event.start, event.timezone), + end: moment.tz(event.end, event.timezone), + timezone: event.timezone, + timestamp: moment(), + summary: event.name, + description: event.description, + organizer: { + name: event.hostName || "Anonymous", + email: event.creatorEmail || "anonymous@anonymous.com", + }, + location: event.location, + url: "https://" + domain + "/" + event.id, + }); + }); + // Stringify it! + const string = cal.toString(); + return string; +} + +module.exports = { + addToLog, + exportIcal, +}; |