diff --git a/server.js b/server.js index 431be41e6..60515d40f 100644 --- a/server.js +++ b/server.js @@ -11,9 +11,11 @@ const sanitizeFilename = require('sanitize-filename'); const asyncHandler = require('express-async-handler'); const dedent = require('dedent-tabs').default; +const brewAccessTypes = ['edit', 'share', 'raw']; + //Get the brew object from the HB database or Google Drive const getBrewFromId = asyncHandler(async (id, accessType)=>{ - if(accessType !== 'edit' && accessType !== 'share') + if(!brewAccessTypes.includes(accessType)) throw ('Invalid Access Type when getting brew'); let brew; if(id.length > 12) { @@ -26,6 +28,10 @@ const getBrewFromId = asyncHandler(async (id, accessType)=>{ brew = sanitizeBrew(brew, accessType === 'edit' ? false : true); //Split brew.text into text and style + //unless the Access Type is RAW, in which case return immediately + if(accessType == 'raw') { + return brew; + } if(brew.text.startsWith('```css')) { const index = brew.text.indexOf('```\n\n'); brew.style = brew.text.slice(7, index - 1); @@ -36,7 +42,7 @@ const getBrewFromId = asyncHandler(async (id, accessType)=>{ /* Any CSS here will apply to your document! */ .myExampleClass { - color: black; + color: black; }`; } return brew; @@ -109,7 +115,7 @@ app.get('/robots.txt', (req, res)=>{ //Source page app.get('/source/:id', asyncHandler(async (req, res)=>{ - const brew = await getBrewFromId(req.params.id, 'share'); + const brew = await getBrewFromId(req.params.id, 'raw'); const replaceStrings = { '&': '&', '<': '<', '>': '>' }; let text = brew.text; @@ -122,7 +128,7 @@ app.get('/source/:id', asyncHandler(async (req, res)=>{ //Download brew source page app.get('/download/:id', asyncHandler(async (req, res)=>{ - const brew = await getBrewFromId(req.params.id, 'share'); + const brew = await getBrewFromId(req.params.id, 'raw'); const prefix = 'HB - '; let fileName = sanitizeFilename(`${prefix}${brew.title}`).replaceAll(' ', '');