diff --git a/apps/server/src/utils/parser.ts b/apps/server/src/utils/parser.ts index 057a2aab6..dbddc7f98 100644 --- a/apps/server/src/utils/parser.ts +++ b/apps/server/src/utils/parser.ts @@ -17,6 +17,7 @@ import { UserFields, EndAction, TimerType, + GoogleSheet, } from 'ontime-types'; import fs from 'fs'; @@ -33,6 +34,7 @@ import { parseSettings, parseUserFields, parseViewSettings, + parseGoogleSheet, } from './parserFunctions.js'; import { parseExcelDate } from './time.js'; @@ -368,6 +370,7 @@ export const parseJson = async (jsonData): Promise => { returnData.osc = parseOsc(jsonData) ?? dbModel.osc; // Import HTTP settings if any // returnData.http = parseHttp(jsonData, enforce); + returnData.googleSheet = parseGoogleSheet(jsonData, true); return returnData as DatabaseModel; }; diff --git a/apps/server/src/utils/parserFunctions.ts b/apps/server/src/utils/parserFunctions.ts index 6ec324eb3..99db6b6fa 100644 --- a/apps/server/src/utils/parserFunctions.ts +++ b/apps/server/src/utils/parserFunctions.ts @@ -1,6 +1,7 @@ import { generateId } from 'ontime-utils'; import { Alias, + GoogleSheet, OntimeRundown, OSCSettings, OscSubscription, @@ -284,3 +285,24 @@ export const parseUserFields = (data): UserFields => { } return { ...newUserFields }; }; + +/** + * Parse Google Sheet portion of an entry + * @param {object} data - data object + * @param {boolean} enforce - whether to create a definition if one is missing + * @returns {object} - event object data + */ +export const parseGoogleSheet = (data, enforce) => { + const newSheet: GoogleSheet = { + id: '', + worksheet: '', + }; + if ('googleSheet' in data) { + console.log('Found Google Sheet definition, importing...'); + newSheet.id ??= data.googleSheet?.id; + newSheet.worksheet ??= data.googleSheet?.worksheet; + return newSheet; + } else if (enforce) { + return newSheet; + } +}; diff --git a/apps/server/src/utils/sheetsAuth.ts b/apps/server/src/utils/sheetsAuth.ts index 18ea09f5e..9926b0d73 100644 --- a/apps/server/src/utils/sheetsAuth.ts +++ b/apps/server/src/utils/sheetsAuth.ts @@ -42,7 +42,7 @@ class sheet { ret.worksheet = true; } } - logger.info(LogOrigin.Server, `Sheet State: ${ret}`); + logger.info(LogOrigin.Server, `Sheet State: ${JSON.stringify(ret)}`); return ret; }