mirror of
https://github.com/KevinMidboe/fetch-the-release.git
synced 2025-10-29 09:30:24 +00:00
Read and write to cache, kindof broken because of async writing to file
This commit is contained in:
22
index.js
22
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))
|
||||
}
|
||||
|
||||
|
||||
|
||||
24
utils.js
24
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 }
|
||||
|
||||
Reference in New Issue
Block a user