Read and write to cache, kindof broken because of async writing to file

This commit is contained in:
2019-07-01 22:37:44 +02:00
parent 2bdf3a5cab
commit d82503a480
2 changed files with 42 additions and 4 deletions

View File

@@ -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))
}

View File

@@ -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 }