Skip to content

Commit 7b9ee13

Browse files
Fix: Convert DECIMAL values to numbers in API response
PostgreSQL returns DECIMAL columns as strings, causing 'toFixed is not a function' errors in the frontend chart. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 388cbe1 commit 7b9ee13

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

server/index.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,28 @@ app.get('/api/fuel-prices/history', async (req, res) => {
127127
try {
128128
const days = parseInt(req.query.days) || 30;
129129
const history = await getPriceHistory(days);
130-
res.json(history);
130+
131+
// Convert DECIMAL values from strings to numbers
132+
const formattedHistory = history.map(record => ({
133+
...record,
134+
gasolina95_avg: record.gasolina95_avg ? parseFloat(record.gasolina95_avg) : null,
135+
gasolina95_min: record.gasolina95_min ? parseFloat(record.gasolina95_min) : null,
136+
gasolina95_max: record.gasolina95_max ? parseFloat(record.gasolina95_max) : null,
137+
gasolina98_avg: record.gasolina98_avg ? parseFloat(record.gasolina98_avg) : null,
138+
gasolina98_min: record.gasolina98_min ? parseFloat(record.gasolina98_min) : null,
139+
gasolina98_max: record.gasolina98_max ? parseFloat(record.gasolina98_max) : null,
140+
gasoleoa_avg: record.gasoleoa_avg ? parseFloat(record.gasoleoa_avg) : null,
141+
gasoleoa_min: record.gasoleoa_min ? parseFloat(record.gasoleoa_min) : null,
142+
gasoleoa_max: record.gasoleoa_max ? parseFloat(record.gasoleoa_max) : null,
143+
gasoleob_avg: record.gasoleob_avg ? parseFloat(record.gasoleob_avg) : null,
144+
gasoleob_min: record.gasoleob_min ? parseFloat(record.gasoleob_min) : null,
145+
gasoleob_max: record.gasoleob_max ? parseFloat(record.gasoleob_max) : null,
146+
gasoleoplus_avg: record.gasoleoplus_avg ? parseFloat(record.gasoleoplus_avg) : null,
147+
gasoleoplus_min: record.gasoleoplus_min ? parseFloat(record.gasoleoplus_min) : null,
148+
gasoleoplus_max: record.gasoleoplus_max ? parseFloat(record.gasoleoplus_max) : null,
149+
}));
150+
151+
res.json(formattedHistory);
131152
} catch (error) {
132153
console.error('Error en /api/fuel-prices/history:', error);
133154
res.status(500).json({ error: 'Error al obtener historial de precios' });

0 commit comments

Comments
 (0)