I want to convert the priceOrigin, salePrice, and price received as strings into numeric strings.
controller.js
const readUserCart = async userId => {
const userCart = await myDataSource.query(
`SELECT u.id AS userId, u.name AS userName,
JSON_ARRAYAGG(
JSON_OBJECT(
'cartId', c_o.id,
'priceOrigin', REPLACE(p.price_origin, '.', ','),
'salePrice', REPLACE(p.sale_price, '.', ','),
'price',
CASE
WHEN p.sale_price is null
THEN REPLACE(p.price_origin * quantity, '.', ',')
ELSE REPLACE(p.sale_price * quantity, '.', ',')
END
)
)AS products
FROM users u
JOIN products p ON p.id = c_o.product_id
JOIN cart_order c_o ON c_o.user_id = u.id
WHERE u.id = ?
GROUP BY u.id`,
[userId]
);
return userCart;
};
So I tried something like below and it still looks up as a string.
What am I doing wrong? Is there another way? I need help.
service.js
const readUserCart = async userId => {
const userCart = await cartOrderDao.readUserCart(userId);
userCart.map(data => {
data.products = JSON.parse(data.products);
});
userCart['priceOrigin'] = Number(userCart['priceOrigin']) * 1000;
userCart['salePrice'] = Number(userCart['salePrice']) * 1000;
return userCart;
};