diff --git a/ids.js b/ids.js index b9c68ff..3bf51e6 100644 --- a/ids.js +++ b/ids.js @@ -93,11 +93,17 @@ async function fetchLevels(sheet) { return levelObjs; } -const doc = new GoogleSpreadsheet(IDS_ID, { apiKey: process.env.API_KEY }); -await doc.loadInfo(); // loads document properties and worksheets -console.log('loaded IDS spreadsheet'); +let doc; + +export async function loadSpreadsheet() { + doc = new GoogleSpreadsheet(IDS_ID, { apiKey: process.env.API_KEY }); + await doc.loadInfo(); // loads document properties and worksheets + console.log('loaded IDS spreadsheet'); +} export async function fetchAllLevels() { + if (!doc) await loadSpreadsheet(); + console.log('fetching IDS levels'); return { regular: await fetchLevels(doc.sheetsById[IDS_REGULAR_LEVELS_ID]), diff --git a/index.js b/index.js index c934127..499ca71 100644 --- a/index.js +++ b/index.js @@ -52,10 +52,15 @@ async function saveCache() { } async function fetchSheets() { - const nlw = await fetchNLWLevels(); - const ids = await fetchIDSLevels(); - levels = { nlw, ids, metadata: levels.metadata }; - await saveCache(); + if (!process.env.API_KEY || process.env.API_KEY === '') { + console.warn('! API_KEY not set, going to rely on cache'); + } else { + const nlw = await fetchNLWLevels(); + const ids = await fetchIDSLevels(); + levels = { nlw, ids, metadata: levels.metadata }; + await saveCache(); + } + await loadupMetadataQueue(); } diff --git a/nlw.js b/nlw.js index a22ba7a..97bdeb4 100644 --- a/nlw.js +++ b/nlw.js @@ -127,11 +127,17 @@ async function fetchLevels(sheet, platformer, pending) { return levelObjs; } -const doc = new GoogleSpreadsheet(NLW_ID, { apiKey: process.env.API_KEY }); -await doc.loadInfo(); // loads document properties and worksheets -console.log('loaded NLW spreadsheet'); +let doc; + +async function loadSpreadsheet() { + doc = new GoogleSpreadsheet(NLW_ID, { apiKey: process.env.API_KEY }); + await doc.loadInfo(); // loads document properties and worksheets + console.log('loaded NLW spreadsheet'); +} export async function fetchAllLevels() { + if (!doc) await loadSpreadsheet(); + console.log('fetching NLW levels'); return { regular: await fetchLevels(doc.sheetsById[NLW_REGULAR_LEVELS_ID], false, false),