From d82503a480380ce4050116f607dc0928791fb4d8 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Mon, 1 Jul 2019 22:37:44 +0200 Subject: [PATCH] Read and write to cache, kindof broken because of async writing to file --- index.js | 22 +++++++++++++++++++--- utils.js | 24 +++++++++++++++++++++++- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 8fa9f9d..da66ceb 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ require('dotenv').config() const fetch = require('node-fetch') -const { whoAmI, printAll } = require('./utils') +const { whoAmI, printAll, writeCache, readCache } = require('./utils') const BASE_PATH = process.env.BASE_PATH @@ -10,6 +10,7 @@ const mapResult = (result) => { year: result.year, id: result.id, status: result.status, + type: result.type, date: result.date } } @@ -25,6 +26,7 @@ function fetchRequestMedia() { const { results, total_results } = {...result} const media = results.map(mapResult) + // console.log('requested: ', media) return media }) } @@ -37,15 +39,25 @@ function fetchReleases(media) { } }) .then(resp => resp.json()) +// .then(resp => { writeToFile(resp); return resp }) .then(result => { const { results } = { ...result } console.log(`Releases for ${media.title} returned: ${results.length}`) - return results ? {catch: media, release: results } : null + return results ? {media: media, release: results } : null }) .catch(console.error) } +function seasonedReleases(release) { + const { media, releases } = release + console.log(media.title) + if (releases) + console.log(releases[0]) + console.log() + +} + async function Fetch() { const media = await fetchRequestMedia() printAll(media) @@ -64,7 +76,11 @@ async function Release(media) { function main() { console.info("👋🎣 lets do some fetch-and-releasin'\n") - Fetch().then(Release) + fetchRequestMedia() + .then(media => Promise.all(media.map(fetchReleases))) + .then(async(releases) => releases.map(await writeCache)) +// readCache() +// .then(releases => releases.filter(seasonedReleases)) } diff --git a/utils.js b/utils.js index a0b1591..6e2ca59 100644 --- a/utils.js +++ b/utils.js @@ -1,3 +1,4 @@ +const fs = require('fs') const whoAmI = (result) => { return `${result.title} (${result.year}) - ${result.status}` @@ -9,4 +10,25 @@ const printAll = (media) => { }) } -module.exports = { whoAmI, printAll } +const writeCache = async (releases) => { + console.log(releases) + return new Promise((resolve, reject) => { + fs.writeFile('./releases.cache', JSON.stringify(releases), (err) => { + if (err) + return console.log(err) + + resolve() + console.log('releases cache saved') + }) + }) +} + +const readCache = () => { + return Promise.resolve(fs.readFile('./releases.cache', 'utf-8', (err, data) => { + if (err) throw err; + console.log(data) + return JSON.parse(data) + })) +} + +module.exports = { whoAmI, printAll, writeCache, readCache }