From 111df94d6d560bcbd5f7891ff6cb3083948c7889 Mon Sep 17 00:00:00 2001 From: arc-alex Date: Fri, 24 Nov 2023 16:49:37 +0100 Subject: [PATCH] parseGoogleSheet from db --- apps/server/src/utils/parser.ts | 3 +++ apps/server/src/utils/parserFunctions.ts | 22 ++++++++++++++++++++++ apps/server/src/utils/sheetsAuth.ts | 2 +- 3 files changed, 26 insertions(+), 1 deletion(-) 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; }