UNPKG

n8n-nodes-nextcloud-calendar

Version:

n8n Node für die Integration mit Nextcloud Calendar

59 lines 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findCalendar = findCalendar; exports.getCalendars = getCalendars; exports.createCalendar = createCalendar; exports.deleteCalendar = deleteCalendar; 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; } async function getCalendars(context) { const client = await (0, client_1.initClient)(context); const calendars = await client.fetchCalendars(); return calendars; } async function createCalendar(context, data) { const client = await (0, client_1.initClient)(context); const calendars = await client.fetchCalendars(); const homeUrl = calendars[0]?.url?.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; } 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 }; } //# sourceMappingURL=calendar.js.map