Merge pull request #4983 from dbolack-ab/issue_4975

Centralize API.getBrew descended calls to splitTextStyleAndMetadata.
This commit is contained in:
Trevor Buckner
2026-09-25 19:31:20 -04:00
committed by GitHub
3 changed files with 2 additions and 10 deletions
-3
View File
@@ -13,7 +13,6 @@ const isProd = nodeEnv === 'production';
import HomebrewAPI from './homebrew.api.js'; import HomebrewAPI from './homebrew.api.js';
import asyncHandler from 'express-async-handler'; import asyncHandler from 'express-async-handler';
import { splitTextStyleAndMetadata } from '../shared/helpers.js';
process.env.ADMIN_USER = process.env.ADMIN_USER || 'admin'; process.env.ADMIN_USER = process.env.ADMIN_USER || 'admin';
process.env.ADMIN_PASS = process.env.ADMIN_PASS || 'password3'; process.env.ADMIN_PASS = process.env.ADMIN_PASS || 'password3';
@@ -148,8 +147,6 @@ export default function createAdminApi(vite) {
brew[property] = cleanText(brew[property]); brew[property] = cleanText(brew[property]);
}); });
splitTextStyleAndMetadata(brew);
req.body = brew; req.body = brew;
// Remove Account from request to prevent Admin user from being added to brew as an Author // Remove Account from request to prevent Admin user from being added to brew as an Author
+1 -3
View File
@@ -193,13 +193,13 @@ const api = {
const fixedStub = migrateSystemsToTags(stub); const fixedStub = migrateSystemsToTags(stub);
req.brew = fixedStub; req.brew = fixedStub;
splitTextStyleAndMetadata(req.brew);
next(); next();
}; };
}, },
getCSS : async (req, res)=>{ getCSS : async (req, res)=>{
const { brew } = req; const { brew } = req;
if(!brew) return res.status(404).send(''); if(!brew) return res.status(404).send('');
splitTextStyleAndMetadata(brew);
if(!brew.style) return res.status(404).send(''); if(!brew.style) return res.status(404).send('');
res.set({ res.set({
@@ -345,7 +345,6 @@ const api = {
}); });
currentTheme = req.brew; currentTheme = req.brew;
splitTextStyleAndMetadata(currentTheme);
if(!currentTheme.tags.some((tag)=>tag === 'meta:theme' || tag === 'meta:Theme')) if(!currentTheme.tags.some((tag)=>tag === 'meta:theme' || tag === 'meta:Theme'))
throw { brewId: req.params.id, name: 'Invalid Theme Selected', message: 'Selected theme does not have the meta:theme tag', status: 422, HBErrorCode: '10' }; throw { brewId: req.params.id, name: 'Invalid Theme Selected', message: 'Selected theme does not have the meta:theme tag', status: 422, HBErrorCode: '10' };
themeName ??= currentTheme.title; themeName ??= currentTheme.title;
@@ -384,7 +383,6 @@ const api = {
// Initialize brew from request and body, destructure query params, and set the initial value for the after-save method // Initialize brew from request and body, destructure query params, and set the initial value for the after-save method
const brewFromClient = api.excludePropsFromUpdate(req.body); const brewFromClient = api.excludePropsFromUpdate(req.body);
const brewFromServer = req.brew; const brewFromServer = req.brew;
splitTextStyleAndMetadata(brewFromServer);
if(brewFromServer?.version !== brewFromClient?.version){ if(brewFromServer?.version !== brewFromClient?.version){
console.log(`Version mismatch on brew ${brewFromClient.editId}`); console.log(`Version mismatch on brew ${brewFromClient.editId}`);
-3
View File
@@ -244,7 +244,6 @@ export default function pageRoutes({
}; };
sanitizeBrew(req.brew, 'edit'); sanitizeBrew(req.brew, 'edit');
splitTextStyleAndMetadata(req.brew);
res.header('Cache-Control', 'no-cache, no-store'); //reload the latest saved brew when pressing back button, not the cached version before save. res.header('Cache-Control', 'no-cache, no-store'); //reload the latest saved brew when pressing back button, not the cached version before save.
return next(); return next();
})); }));
@@ -252,7 +251,6 @@ export default function pageRoutes({
//New Page from ID //New Page from ID
app.get('/new/:id', asyncHandler(getBrew('share')), asyncHandler(async(req, res, next)=>{ app.get('/new/:id', asyncHandler(getBrew('share')), asyncHandler(async(req, res, next)=>{
sanitizeBrew(req.brew, 'share'); sanitizeBrew(req.brew, 'share');
splitTextStyleAndMetadata(req.brew);
const brew = { const brew = {
shareId : req.brew.shareId, shareId : req.brew.shareId,
title : `CLONE - ${req.brew.title}`, title : `CLONE - ${req.brew.title}`,
@@ -310,7 +308,6 @@ export default function pageRoutes({
}; };
brew.authors.includes(req.account?.username) ? sanitizeBrew(req.brew, 'shareAuthor') : sanitizeBrew(req.brew, 'share'); brew.authors.includes(req.account?.username) ? sanitizeBrew(req.brew, 'shareAuthor') : sanitizeBrew(req.brew, 'share');
splitTextStyleAndMetadata(req.brew);
return next(); return next();
})); }));