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, };