From 715ddf2b8c9088d9f02bcab575f97055ce4f7796 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 17 Jan 2021 18:52:56 +1300 Subject: [PATCH] Initial commit --- client/homebrew/pages/sharePage/sharePage.jsx | 5 +- server.js | 49 ++++++++++++++++++- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index c94473b1d..01145ec4c 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -60,7 +60,10 @@ const SharePage = createClass({ - source + view source + + + download source diff --git a/server.js b/server.js index 5528a3762..d2de44ae5 100644 --- a/server.js +++ b/server.js @@ -76,7 +76,7 @@ app.get('/source/:id', (req, res)=>{ GoogleActions.readFileMetadata(config.get('google_api_key'), googleId, shareId, 'share') .then((brew)=>{ const text = brew.text.replaceAll('<', '<').replaceAll('>', '>'); - return res.send(`
${text}
`); + return res.status(200).send(`
${text}
`); }) .catch((err)=>{ console.log(err); @@ -86,7 +86,52 @@ app.get('/source/:id', (req, res)=>{ HomebrewModel.get({ shareId: req.params.id }) .then((brew)=>{ const text = brew.text.replaceAll('<', '<').replaceAll('>', '>'); - return res.send(`
${text}
`); + return res.status(200).send(`
${text}
`); + }) + .catch((err)=>{ + console.log(err); + return res.status(404).send('Could not find Homebrew with that id'); + }); + } +}); + +//Source download page +app.get('/source_dl/:id', (req, res)=>{ + if(req.params.id.length > 12) { + const googleId = req.params.id.slice(0, -12); + const shareId = req.params.id.slice(-12); + GoogleActions.readFileMetadata(config.get('google_api_key'), googleId, shareId, 'share') + .then((brew)=>{ + const text = brew.text.replaceAll('<', '<').replaceAll('>', '>'); + const fileName = brew.title.replaceAll(' ', '-'); + + res.status(200); + res.set({ + 'Cache-Control' : 'no-cache', + 'Content-Type' : 'text/plain', + 'Content-Disposition' : `attachment; filename="HomeBrewery-${fileName}.txt"` + }); + + return res.send(text); + }) + .catch((err)=>{ + console.log(err); + return res.status(400).send('Can\'t get brew from Google'); + }); + } else { + HomebrewModel.get({ shareId: req.params.id }) + .then((brew)=>{ + const text = brew.text.replaceAll('<', '<').replaceAll('>', '>'); + const fileName = brew.title.replaceAll(' ', '-'); + + res.status(200); + res.set({ + 'Cache-Control' : 'no-cache', + 'Content-Type' : 'text/plain', + 'Content-Disposition' : `attachment; filename="HomeBrewery-${fileName}.txt"` + }); + + return res.send(text); }) .catch((err)=>{ console.log(err);