UNPKG

n8n-nodes-nextcloud-calendar

Version:

n8n Node für die Integration mit Nextcloud Calendar

61 lines 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteCalendar = exports.createCalendar = exports.getCalendars = exports.findCalendar = void 0; const client_1 = require("../helpers/client"); async function findCalendar(context, client, calendarName) { const calendars = await getCalendars(context); const calendar = calendars.find((cal) => cal.displayName === calendarName); if (!calendar) { throw new Error(`Calendar "${calendarName}" not found`); } return calendar; } exports.findCalendar = findCalendar; async function getCalendars(context) { const client = await (0, client_1.initClient)(context); const calendars = await client.fetchCalendars(); return calendars; } exports.getCalendars = getCalendars; async function createCalendar(context, data) { var _a, _b; const client = await (0, client_1.initClient)(context); const calendars = await client.fetchCalendars(); const homeUrl = ((_b = (_a = calendars[0]) === null || _a === void 0 ? void 0 : _a.url) === null || _b === void 0 ? void 0 : _b.split('/').slice(0, -1).join('/')) || ''; await client.createCalendarObject({ calendar: { url: `${homeUrl}/${data.displayName}/`, displayName: data.displayName, }, filename: 'calendar.ics', iCalString: `BEGIN:VCALENDAR VERSION:2.0 PRODID:-//n8n//Nextcloud Calendar Node//EN NAME:${data.displayName} X-WR-TIMEZONE:${data.timezone || 'UTC'} END:VCALENDAR`, }); const newCalendar = { url: `${homeUrl}/${data.displayName}/`, displayName: data.displayName, timezone: data.timezone, color: data.color, description: data.description, }; return newCalendar; } exports.createCalendar = createCalendar; async function deleteCalendar(context, calendarName) { const client = await (0, client_1.initClient)(context); const calendar = await findCalendar(context, client, calendarName); await client.deleteCalendarObject({ calendarObject: { url: calendar.url, data: '', etag: '', }, }); return { success: true }; } exports.deleteCalendar = deleteCalendar; //# sourceMappingURL=calendar.js.map