From 7bafcb0343ca82a9371380c457dad8729bf70eae Mon Sep 17 00:00:00 2001 From: efarooqui Date: Mon, 8 Feb 2021 11:49:43 -0800 Subject: [PATCH] Make new route in api instead of going through npm script; new retrieveAll call for controller --- package.json | 2 ++ src/api/index.js | 22 ++++++++++++++++++++++ src/lib/Controller.js | 4 ++++ src/utilities.js | 11 +++++++++++ 4 files changed, 39 insertions(+) create mode 100644 src/utilities.js diff --git a/package.json b/package.json index 80bb4a2..2cc8656 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.3.0", "description": "Starter project for an ES6 RESTful Express API", "main": "dist", + "type": "module", "scripts": { "dev": "env NODE_ENV=development nodemon -w src --exec \"babel-node src\"", "build": "env NODE_ENV=production npx babel src -d dist", @@ -26,6 +27,7 @@ "express": "^4.13.3", "express-graphql": "^0.6.12", "express-handlebars": "^4.0.4", + "file-system": "^2.2.2", "googleapis": "^39.1.0", "graphql": "^0.13.2", "morgan": "^1.8.0", diff --git a/src/api/index.js b/src/api/index.js index f85bb9c..8bd5d43 100755 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,5 +1,6 @@ import { version } from '../../package.json' import { Router } from 'express' +import { exportToFile } from '../utilities' import copy from '../copy/en' export default ({ config, controller }) => { @@ -22,6 +23,27 @@ export default ({ config, controller }) => { }) }) + api.get('/export', (req, res) => { + const bps = controller.blueprints() + const bpsParsed = bps.map(bp => ({ + sheet: bp.sheet.name, + tab: bp.name, + resources: bp.resources, + url: bp.urls[0] + })) + controller + .retrieveAll(bpsParsed) + .then(msg => + res.json({ + success: msg + }) + ) + .catch(err => + res.status(404) + .send({ error: err.message, err }) + ) + }) + api.get('/update', (req, res) => { controller .update() diff --git a/src/lib/Controller.js b/src/lib/Controller.js index 1ff2043..c6b8468 100644 --- a/src/lib/Controller.js +++ b/src/lib/Controller.js @@ -39,6 +39,10 @@ class Controller { }) } + retrieveAll (blueprints) { + // index through bps, grab data and add to existing data object with value for url name and data points for data object, write to file and return success msg; catch errors appropriately + } + retrieve (sheet, tab, resource) { if (this._sheetExists(sheet)) { const fetcher = this.fetchers[sheet] diff --git a/src/utilities.js b/src/utilities.js new file mode 100644 index 0000000..e2dfeda --- /dev/null +++ b/src/utilities.js @@ -0,0 +1,11 @@ +import fs from 'file-system' + +function exportToFile(url, data) { + console.info(url, data) + return 1 +} + +export const utilities = { + default: exportToFile(), + exportToFile +} \ No newline at end of file