Add new "choir" calendar and add cascading functionality for calendars
Jenkins Production Deployment
Jenkins Production Deployment
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
import {Event} from './event.interface';
|
||||
|
||||
/**
|
||||
* Interface to external classes - Turns the given events into an ical string
|
||||
* @param events
|
||||
*/
|
||||
export const convertToIcal = async (events: Event[]): Promise<string> => {
|
||||
try {
|
||||
let ical: iCalFile = {body: []};
|
||||
@@ -15,6 +19,10 @@ export const convertToIcal = async (events: Event[]): Promise<string> => {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Method to serialize an iCalFile object into an ical string
|
||||
* @param ical
|
||||
*/
|
||||
const serializeIcalFile = (ical: iCalFile): string => {
|
||||
let returnString = '';
|
||||
|
||||
@@ -27,6 +35,10 @@ const serializeIcalFile = (ical: iCalFile): string => {
|
||||
return returnString;
|
||||
};
|
||||
|
||||
/**
|
||||
* Method to serialize a single ical event into an ical event string
|
||||
* @param icalevent
|
||||
*/
|
||||
const serializeIcalEvent = (icalevent: iCalEvent): string => {
|
||||
let returnString = '';
|
||||
|
||||
@@ -50,7 +62,10 @@ const serializeIcalEvent = (icalevent: iCalEvent): string => {
|
||||
return returnString;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Method to generate the ical header string
|
||||
* @param ical
|
||||
*/
|
||||
const generateHeaderInfo = (ical: iCalFile) => {
|
||||
ical.header = 'BEGIN:VCALENDAR\n' +
|
||||
'VERSION:2.0\n' +
|
||||
@@ -78,14 +93,27 @@ const generateHeaderInfo = (ical: iCalFile) => {
|
||||
'END:VTIMEZONE\n';
|
||||
};
|
||||
|
||||
/**
|
||||
* Method to generate the ical footer info
|
||||
* @param ical
|
||||
*/
|
||||
const generateFooterInfo = (ical: iCalFile) => {
|
||||
ical.footer = 'END:VCALENDAR';
|
||||
};
|
||||
|
||||
/**
|
||||
* Method to add events to the iCalFile object
|
||||
* @param ical
|
||||
* @param event
|
||||
*/
|
||||
const addEventToFile = (ical: iCalFile, event: Event) => {
|
||||
ical.body.push(createIcalEvent(event));
|
||||
};
|
||||
|
||||
/**
|
||||
* Method to turn an event object into an iCalEvent object
|
||||
* @param event
|
||||
*/
|
||||
const createIcalEvent = (event: Event): iCalEvent => {
|
||||
let description = event.description ? event.description + '\n' : '';
|
||||
let location = event.location ? event.location + '\n' : '';
|
||||
@@ -107,6 +135,12 @@ const createIcalEvent = (event: Event): iCalEvent => {
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Helper method to format dates in a valid iCal format
|
||||
* @param date
|
||||
* @param wholeDayFormat
|
||||
* @param isEndDate
|
||||
*/
|
||||
const formatDate = (date: Date, wholeDayFormat: boolean = false, isEndDate: boolean = false): string => {
|
||||
let returnString = '';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user