From 695abaf05aec12c9d02a06f20b64afa18b37d9b4 Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Fri, 24 Jan 2025 11:42:37 +0100 Subject: [PATCH 1/2] fix: debugging contentful routes --- src/server/routes/contentful.js | 119 +++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 42 deletions(-) diff --git a/src/server/routes/contentful.js b/src/server/routes/contentful.js index bf6f606a7..57cfdb7b8 100644 --- a/src/server/routes/contentful.js +++ b/src/server/routes/contentful.js @@ -30,19 +30,24 @@ routes.options('*', cors()); routes.use( '/:spaceName/:environment/assets/:id/:version/:name', (req, res) => { - const { - environment, - id, - name, - spaceName, - version, - } = req.params; - const spaceId = getSpaceId(spaceName); - if (!ALLOWED_DOMAINS.includes(ASSETS_DOMAIN)) { - throw new Error('Invalid domain detected!'); + try { + const { + environment, + id, + name, + spaceName, + version, + } = req.params; + const spaceId = getSpaceId(spaceName); + if (!ALLOWED_DOMAINS.includes(ASSETS_DOMAIN)) { + console.log('Invalid domain detected!'); + throw new Error('Invalid domain detected!'); + } + const url = new URL(`https://${ASSETS_DOMAIN}/spaces/${spaceId}/environments/${environment}/${id}/${version}/${name}`); + res.redirect(url.href); + } catch (e) { + console.log('error in getting asset', e); } - const url = new URL(`https://${ASSETS_DOMAIN}/spaces/${spaceId}/environments/${environment}/${id}/${version}/${name}`); - res.redirect(url.href); }, ); @@ -50,19 +55,23 @@ routes.use( routes.use( '/:spaceName/:environment/images/:id/:version/:name', (req, res) => { - const { - environment, - id, - name, - spaceName, - version, - } = req.params; - if (!ALLOWED_DOMAINS.includes(IMAGES_DOMAIN)) { - throw new Error('Invalid domain detected!'); + try { + const { + environment, + id, + name, + spaceName, + version, + } = req.params; + if (!ALLOWED_DOMAINS.includes(IMAGES_DOMAIN)) { + throw new Error('Invalid domain detected!'); + } + const spaceId = getSpaceId(spaceName); + const url = new URL(`https://${IMAGES_DOMAIN}/spaces/${spaceId}/environments/${environment}/${id}/${version}/${name}`); + res.redirect(url.href); + } catch (e) { + console.log('error in getting image', e); } - const spaceId = getSpaceId(spaceName); - const url = new URL(`https://${IMAGES_DOMAIN}/spaces/${spaceId}/environments/${environment}/${id}/${version}/${name}`); - res.redirect(url.href); }, ); @@ -102,45 +111,71 @@ routes.use('/:spaceName/:environment/preview/entries', (req, res, next) => { routes.use( '/:spaceName/:environment/published/assets/:id', (req, res, next) => { - const { environment, id, spaceName } = req.params; - getService(spaceName, environment, false) - .getAsset(id) - .then(res.send.bind(res), next); + try { + const { environment, id, spaceName } = req.params; + getService(spaceName, environment, false) + .getAsset(id) + .then(res.send.bind(res), next); + } catch (e) { + console.log('error in getting published asset', e); + next(e); + } }, ); /* Queries published assets of a given space name & environment. */ routes.use(':spaceName/:environment/published/assets', (req, res, next) => { - const { environment, spaceName } = req.params; - getService(spaceName, environment, false) - .queryAssets(req.query) - .then(res.send.bind(res), next); + try { + const { environment, spaceName } = req.params; + getService(spaceName, environment, false) + .queryAssets(req.query) + .then(res.send.bind(res), next); + } catch (e) { + console.log('error in getting published assets', e); + next(e); + } }); /* Gets the specified published entry of a given space name & environment. */ routes.use( '/:spaceName/:environment/published/entries/:id', (req, res, next) => { - const { environment, id, spaceName } = req.params; - getService(spaceName, environment, false) - .getEntry(id) - .then(res.send.bind(res), next); + try { + const { environment, id, spaceName } = req.params; + getService(spaceName, environment, false) + .getEntry(id) + .then(res.send.bind(res), next); + } catch (e) { + console.log('error in getting published entry', e); + next(e); + } + }, ); /* Queries published entries of a given space name and environment. */ routes.use('/:spaceName/:environment/published/entries', (req, res, next) => { - const { environment, spaceName } = req.params; - console.log('hits cdn published entries'); - getService(spaceName, environment, true) - .queryEntries(req.query) - .then(res.send.bind(res), next); + try { + console.log('hits cdn published entries'); + const { environment, spaceName } = req.params; + getService(spaceName, environment, false) + .queryEntries(req.query) + .then(res.send.bind(res), next); + } catch (e) { + console.log('error in getting published entries', e); + next(e); + } }); /* Update votes on article. */ routes.use('/:spaceName/:environment/votes', (req, res, next) => authenticator(authenticatorOptions)(req, res, next), (req, res, next) => { - articleVote(req.body) + try { + articleVote(req.body) .then(res.send.bind(res), next); + } catch (e) { + console.log('error in voting', e); + next(e); + } }); export default routes; From efd67a8c60ac5e65f6c392026d57c07a0b162731 Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Fri, 24 Jan 2025 11:49:02 +0100 Subject: [PATCH 2/2] fix: lint --- src/server/routes/contentful.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/server/routes/contentful.js b/src/server/routes/contentful.js index 57cfdb7b8..ee8aa21e0 100644 --- a/src/server/routes/contentful.js +++ b/src/server/routes/contentful.js @@ -30,7 +30,7 @@ routes.options('*', cors()); routes.use( '/:spaceName/:environment/assets/:id/:version/:name', (req, res) => { - try { + try { const { environment, id, @@ -46,7 +46,7 @@ routes.use( const url = new URL(`https://${ASSETS_DOMAIN}/spaces/${spaceId}/environments/${environment}/${id}/${version}/${name}`); res.redirect(url.href); } catch (e) { - console.log('error in getting asset', e); + console.log('error in getting asset', e); } }, ); @@ -149,7 +149,6 @@ routes.use( console.log('error in getting published entry', e); next(e); } - }, ); @@ -171,7 +170,7 @@ routes.use('/:spaceName/:environment/published/entries', (req, res, next) => { routes.use('/:spaceName/:environment/votes', (req, res, next) => authenticator(authenticatorOptions)(req, res, next), (req, res, next) => { try { articleVote(req.body) - .then(res.send.bind(res), next); + .then(res.send.bind(res), next); } catch (e) { console.log('error in voting', e); next(e);