mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-10 18:03:47 +00:00
fix key check and ensureDirectory on startup
This commit is contained in:
@@ -279,7 +279,6 @@ export const postPushSheet = async () => {
|
||||
return response.data.data;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @description HTTP request to retrieve google sheets settings
|
||||
* @return {Promise}
|
||||
@@ -305,4 +304,4 @@ export async function postSheetSettings(data: GoogleSheet): Promise<GoogleSheet>
|
||||
export async function getSheetstate(): Promise<GoogleSheetState> {
|
||||
const res = await axios.get(`${ontimeURL}/sheet-state`);
|
||||
return res.data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ChangeEvent, useEffect,useRef, useState } from 'react';
|
||||
import { ChangeEvent, useEffect, useRef, useState } from 'react';
|
||||
import {
|
||||
Button,
|
||||
Input,
|
||||
@@ -122,9 +122,7 @@ export default function SheetsModal(props: SheetsModalProps) {
|
||||
};
|
||||
|
||||
const handlePushData = () => {
|
||||
postPushSheet().then((data) => {
|
||||
console.log(data);
|
||||
});
|
||||
postPushSheet().then((_) => {});
|
||||
};
|
||||
|
||||
const handleFinalise = async () => {
|
||||
@@ -169,13 +167,11 @@ export default function SheetsModal(props: SheetsModalProps) {
|
||||
<ModalCloseButton />
|
||||
<ModalBody>
|
||||
{rundown && (
|
||||
<>
|
||||
<PreviewExcel
|
||||
rundown={rundown ?? []}
|
||||
project={project ?? projectDataPlaceholder}
|
||||
userFields={userFields ?? userFieldsPlaceholder}
|
||||
/>
|
||||
</>
|
||||
<PreviewExcel
|
||||
rundown={rundown ?? []}
|
||||
project={project ?? projectDataPlaceholder}
|
||||
userFields={userFields ?? userFieldsPlaceholder}
|
||||
/>
|
||||
)}
|
||||
{!rundown && (
|
||||
<>
|
||||
|
||||
@@ -125,4 +125,4 @@ router.get('/sheet-settings', getGoogleSheetSettings);
|
||||
router.post('/sheet-settings', validateGoogleSheetSettings, postGoogleSheetSettings);
|
||||
|
||||
// create route between controller and '/ontime/sheet-state' endpoint
|
||||
router.get('/sheet-state', getGoogleSheetState);
|
||||
router.get('/sheet-state', getGoogleSheetState);
|
||||
|
||||
@@ -12,6 +12,7 @@ import { ensureDirectory } from './fileManagement.js';
|
||||
import { DataProvider } from '../classes/data-provider/DataProvider.js';
|
||||
import { GoogleSheetState } from 'ontime-types';
|
||||
import { cellRequenstFromEvent, cellRequenstFromProjectData, getA1Notation } from './googleSheetUtils.js';
|
||||
import { join } from 'path';
|
||||
|
||||
type ResponseOK = {
|
||||
data: Partial<DatabaseModel>;
|
||||
@@ -20,14 +21,20 @@ type ResponseOK = {
|
||||
class sheet {
|
||||
private static client: null | OAuth2Client = null;
|
||||
private readonly scope = 'https://www.googleapis.com/auth/spreadsheets';
|
||||
private readonly sheetsFolder = `${getAppDataPath()}/sheets`;
|
||||
private readonly client_secret = `${this.sheetsFolder}/client_secret.json`;
|
||||
private readonly sheetsFolder;
|
||||
private readonly client_secret;
|
||||
private static authUrl: null | string = null;
|
||||
private worksheetId: number = 0;
|
||||
private sheetId: string = '';
|
||||
private range: string = '';
|
||||
|
||||
constructor() {
|
||||
const appDataPath = getAppDataPath();
|
||||
if (appDataPath === '') {
|
||||
throw new Error('Could not resolve public folder for platform');
|
||||
}
|
||||
this.sheetsFolder = join(appDataPath, 'sheets');
|
||||
this.client_secret = join(this.sheetsFolder, 'client_secret.json');
|
||||
ensureDirectory(this.sheetsFolder);
|
||||
}
|
||||
|
||||
@@ -213,19 +220,20 @@ class sheet {
|
||||
public async saveClientSecrets(secrets: object) {
|
||||
sheet.client = null;
|
||||
sheet.authUrl = null;
|
||||
ensureDirectory(this.sheetsFolder);
|
||||
if (
|
||||
'client_id' in secrets ||
|
||||
!('project_id' in secrets) ||
|
||||
!('auth_uri' in secrets) ||
|
||||
!('token_uri' in secrets) ||
|
||||
!('auth_provider_x509_cert_url' in secrets) ||
|
||||
!('client_secret' in secrets) ||
|
||||
!('redirect_uris' in secrets)
|
||||
!('client_id' in secrets['installed']) ||
|
||||
!('project_id' in secrets['installed']) ||
|
||||
!('auth_uri' in secrets['installed']) ||
|
||||
!('token_uri' in secrets['installed']) ||
|
||||
!('auth_provider_x509_cert_url' in secrets['installed']) ||
|
||||
!('client_secret' in secrets['installed']) ||
|
||||
!('redirect_uris' in secrets['installed'])
|
||||
) {
|
||||
throw new Error('Sheet slient secret is missing some keys');
|
||||
}
|
||||
await writeFile(this.client_secret, JSON.stringify(secrets), 'utf-8');
|
||||
await writeFile(this.client_secret, JSON.stringify(secrets), 'utf-8').catch((err) =>
|
||||
logger.error(LogOrigin.Server, `${err}`),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user