forked from UKSOURCE/cms.hailearning.edu.vn
feat(about): sync FE-BE data and image upload
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
* @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 || "";
|
||||
// Use passed baseUrl, then env var, then default to localhost:3001
|
||||
const BACKEND_URL = (baseUrl || process.env.BACKEND_URL || "http://localhost:3001").replace(/\/$/, "");
|
||||
|
||||
// Tạo bản sao sâu để tránh thay đổi dữ liệu gốc
|
||||
const processedData = JSON.parse(JSON.stringify(data));
|
||||
@@ -14,16 +14,27 @@ function addBaseUrlToImages(data, baseUrl) {
|
||||
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]}`;
|
||||
if (Array.isArray(obj)) {
|
||||
obj.forEach((item, index) => {
|
||||
if (typeof item === "string" && (item.startsWith("/uploads/") || item.startsWith("/assets/img/"))) {
|
||||
if (!item.startsWith("http")) {
|
||||
obj[index] = `${BACKEND_URL}${item}`;
|
||||
}
|
||||
} else if (typeof item === "object") {
|
||||
processObject(item);
|
||||
}
|
||||
} else if (typeof obj[key] === "object") {
|
||||
// Đệ quy xử lý các đối tượng và mảng lồng nhau
|
||||
processObject(obj[key]);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
Object.keys(obj).forEach((key) => {
|
||||
const value = obj[key];
|
||||
if (typeof value === "string" && (value.startsWith("/uploads/") || value.startsWith("/assets/img/"))) {
|
||||
if (!value.startsWith("http")) {
|
||||
obj[key] = `${BACKEND_URL}${value}`;
|
||||
}
|
||||
} else if (value && typeof value === "object") {
|
||||
processObject(value);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user