fea/nhat-dat-11042026-merge #1

Closed
minhnhat wants to merge 27 commits from UKSOURCE/cms.hailearning.edu.vn:fea/nhat-dat-11042026-merge into fea/nhat-13042028-merge-kiet-thien
12 changed files with 25 additions and 26 deletions
Showing only changes of commit 70a1962587 - Show all commits

View File

@@ -253,7 +253,7 @@ exports.getAbout = async (req, res) => {
// =============================== // ===============================
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(rawData, baseUrl); const processedData = addBaseUrlToImages(rawData, baseUrl);
res.json(processedData); res.json(processedData);

View File

@@ -25,7 +25,7 @@ exports.api = async (req, res) => {
try { try {
// Return structured response with filters and camps // Return structured response with filters and camps
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
// Get filters document (single doc with isFiltersDoc:true) // Get filters document (single doc with isFiltersDoc:true)
const filtersDoc = await Activity.findOne({ isFiltersDoc: true }).lean(); const filtersDoc = await Activity.findOne({ isFiltersDoc: true }).lean();
@@ -69,7 +69,7 @@ exports.apiDetail = async (req, res) => {
} }
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processed = addBaseUrlToImages(activity, baseUrl); const processed = addBaseUrlToImages(activity, baseUrl);
return res.json(processed); return res.json(processed);
@@ -618,7 +618,7 @@ exports.preview = async (req, res) => {
} }
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processed = addBaseUrlToImages(activity, baseUrl); const processed = addBaseUrlToImages(activity, baseUrl);
res.json(processed); res.json(processed);

View File

@@ -445,7 +445,7 @@ exports.api = async (req, res) => {
// Add base URL to images // Add base URL to images
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedBlogs = blogs.map((blog) => const processedBlogs = blogs.map((blog) =>
addBaseUrlToImages(blog, baseUrl), addBaseUrlToImages(blog, baseUrl),
); );
@@ -515,7 +515,7 @@ exports.apiShow = async (req, res) => {
// Add base URL to images // Add base URL to images
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedBlog = addBaseUrlToImages(blog, baseUrl); const processedBlog = addBaseUrlToImages(blog, baseUrl);
res.json({ res.json({
@@ -662,7 +662,7 @@ exports.apiRecent = async (req, res) => {
// Add base URL to images // Add base URL to images
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedPosts = recentPosts.map((post) => const processedPosts = recentPosts.map((post) =>
addBaseUrlToImages(post, baseUrl), addBaseUrlToImages(post, baseUrl),
); );

View File

@@ -22,7 +22,7 @@ exports.api = async (req, res) => {
return res.status(404).json({ error: "Contact data not found" }); return res.status(404).json({ error: "Contact data not found" });
} }
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(contact, baseUrl); const processedData = addBaseUrlToImages(contact, baseUrl);
res.json(processedData); res.json(processedData);
} catch (err) { } catch (err) {

View File

@@ -445,10 +445,9 @@ exports.apiGetBlogs = async (req, res) => {
}; };
exports.api = async (req, res) => { exports.api = async (req, res) => {
try { try {
// Chỉ dùng doc mới nhất, không merge nhiều docs let data = await getHomeData();
const doc = await getHomeDoc(); const baseUrl =
let data = doc?.toObject() || {}; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const baseUrl = `${req.protocol}://${req.get("host")}`;
// === Xử lý Blog Preview động === // === Xử lý Blog Preview động ===
const blogPreview = data.blogPreview || {}; const blogPreview = data.blogPreview || {};

View File

@@ -17,7 +17,7 @@ exports.api = async (req, res) => {
// Sử dụng helper để thêm base URL vào đường dẫn ảnh // Sử dụng helper để thêm base URL vào đường dẫn ảnh
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(insuranceData, baseUrl); const processedData = addBaseUrlToImages(insuranceData, baseUrl);
// Trả về trực tiếp hero, page, content (không wrap trong object) // Trả về trực tiếp hero, page, content (không wrap trong object)
@@ -56,7 +56,7 @@ exports.getInsuranceData = async (req, res) => {
// Thêm base URL vào đường dẫn ảnh // Thêm base URL vào đường dẫn ảnh
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(insuranceData, baseUrl); const processedData = addBaseUrlToImages(insuranceData, baseUrl);
res.json({ res.json({
@@ -93,7 +93,7 @@ exports.getByLanguage = async (req, res) => {
// Thêm base URL vào đường dẫn ảnh // Thêm base URL vào đường dẫn ảnh
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(insuranceData, baseUrl); const processedData = addBaseUrlToImages(insuranceData, baseUrl);
res.json({ res.json({
@@ -196,7 +196,7 @@ exports.preview = async (req, res) => {
// Thêm base URL vào đường dẫn ảnh cho preview // Thêm base URL vào đường dẫn ảnh cho preview
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedHeroData = addBaseUrlToImages(heroData, baseUrl); const processedHeroData = addBaseUrlToImages(heroData, baseUrl);
// Render preview HTML // Render preview HTML

View File

@@ -21,7 +21,7 @@ exports.api = async (req, res) => {
return res.status(404).json({ error: "Safety data not found" }); return res.status(404).json({ error: "Safety data not found" });
} }
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(safety, baseUrl); const processedData = addBaseUrlToImages(safety, baseUrl);
res.json(processedData); res.json(processedData);
} catch (err) { } catch (err) {

View File

@@ -253,7 +253,7 @@ exports.api = async (req, res) => {
try { try {
const serviceData = await getServiceData(); const serviceData = await getServiceData();
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(serviceData, baseUrl); const processedData = addBaseUrlToImages(serviceData, baseUrl);
res.json(processedData); res.json(processedData);
@@ -291,7 +291,7 @@ exports.getServiceBySlug = async (req, res) => {
} }
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
// Return service details in the expected format // Return service details in the expected format
const responseData = { const responseData = {

View File

@@ -19,7 +19,7 @@ exports.api = async (req, res) => {
// Sử dụng helper để thêm base URL vào đường dẫn ảnh // Sử dụng helper để thêm base URL vào đường dẫn ảnh
// Truyền baseUrl từ request hoặc từ environment // Truyền baseUrl từ request hoặc từ environment
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(termsData, baseUrl); const processedData = addBaseUrlToImages(termsData, baseUrl);
res.json({ res.json({
@@ -57,7 +57,7 @@ exports.getTermsData = async (req, res) => {
// Thêm base URL vào đường dẫn ảnh // Thêm base URL vào đường dẫn ảnh
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(termsData, baseUrl); const processedData = addBaseUrlToImages(termsData, baseUrl);
res.json({ res.json({
@@ -91,7 +91,7 @@ exports.getByLanguage = async (req, res) => {
// Thêm base URL vào đường dẫn ảnh // Thêm base URL vào đường dẫn ảnh
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(termsData, baseUrl); const processedData = addBaseUrlToImages(termsData, baseUrl);
res.json({ res.json({
@@ -326,7 +326,7 @@ exports.preview = async (req, res) => {
// Thêm base URL vào đường dẫn ảnh cho preview // Thêm base URL vào đường dẫn ảnh cho preview
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedHeroData = addBaseUrlToImages(heroData, baseUrl); const processedHeroData = addBaseUrlToImages(heroData, baseUrl);
// Render preview HTML // Render preview HTML

View File

@@ -179,7 +179,7 @@ exports.api = exports.getTravelData = async (req, res) => {
const travelObj = travel.toObject(); const travelObj = travel.toObject();
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processed = addBaseUrlToImages(travelObj, baseUrl); const processed = addBaseUrlToImages(travelObj, baseUrl);
return res.json({ return res.json({

View File

@@ -23,7 +23,7 @@ exports.api = async (req, res) => {
return res.status(404).json({ error: "Video Gallery data not found" }); return res.status(404).json({ error: "Video Gallery data not found" });
} }
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(videoGallery, baseUrl); const processedData = addBaseUrlToImages(videoGallery, baseUrl);
res.json(processedData); res.json(processedData);
} catch (err) { } catch (err) {

View File

@@ -678,7 +678,7 @@ exports.apiHero = async (req, res) => {
); );
const baseUrl = const baseUrl =
process.env.BACKEND_URL || `${req.protocol}://${req.get("host")}`; process.env.BACKEND_URL ?? `${req.protocol}://${req.get("host")}`;
const processedData = addBaseUrlToImages(heroData, baseUrl); const processedData = addBaseUrlToImages(heroData, baseUrl);
return res.json({ return res.json({