forked from UKSOURCE/cms.hailearning.edu.vn
37 lines
1.4 KiB
JavaScript
37 lines
1.4 KiB
JavaScript
/**
|
|
* Thêm BACKEND_URL vào đường dẫn hình ảnh
|
|
* @param {Object} data - Dữ liệu cần xử lý
|
|
* @returns {Object} - Dữ liệu đã được xử lý với đường dẫn hình ảnh đầy đủ
|
|
*/
|
|
function addBaseUrlToImages(data, baseUrl) {
|
|
// baseUrl can be passed explicitly (e.g., from req), otherwise fall back to env
|
|
const BACKEND_URL = baseUrl || process.env.BACKEND_URL || '';
|
|
|
|
// Tạo bản sao sâu để tránh thay đổi dữ liệu gốc
|
|
const processedData = JSON.parse(JSON.stringify(data));
|
|
|
|
// Hàm đệ quy để xử lý tất cả các URL hình ảnh trong đối tượng
|
|
const processObject = (obj) => {
|
|
if (!obj || typeof obj !== 'object') return;
|
|
|
|
Object.keys(obj).forEach(key => {
|
|
// Kiểm tra nếu thuộc tính chứa đường dẫn hình ảnh bắt đầu bằng /uploads/
|
|
if (typeof obj[key] === 'string' && obj[key].startsWith('/uploads/')) {
|
|
// Thêm BACKEND_URL nếu đường dẫn chưa có http
|
|
if (!obj[key].startsWith('http')) {
|
|
obj[key] = `${BACKEND_URL}${obj[key]}`;
|
|
}
|
|
} else if (typeof obj[key] === 'object') {
|
|
// Đệ quy xử lý các đối tượng và mảng lồng nhau
|
|
processObject(obj[key]);
|
|
}
|
|
});
|
|
};
|
|
|
|
processObject(processedData);
|
|
return processedData;
|
|
}
|
|
|
|
module.exports = {
|
|
addBaseUrlToImages
|
|
};
|