forked from UKSOURCE/cms.hailearning.edu.vn
first commit
This commit is contained in:
87
scripts/2025_12_02_114122_aboutus.js
Normal file
87
scripts/2025_12_02_114122_aboutus.js
Normal file
@@ -0,0 +1,87 @@
|
||||
require("dotenv").config();
|
||||
const fs = require("fs").promises;
|
||||
const path = require("path");
|
||||
const connectDB = require("../config/database");
|
||||
const AboutUs = require("../models/aboutUs");
|
||||
|
||||
/**
|
||||
* Normalize the provided aboutUs.json into the AboutUs model shape.
|
||||
*/
|
||||
function transformAboutUs(source) {
|
||||
const hero = {
|
||||
banner: source?.hero?.banner || "",
|
||||
title: source?.hero?.title || "",
|
||||
breadcrumb: source?.hero?.breadcrumb || "",
|
||||
};
|
||||
|
||||
// Introduce section
|
||||
const introduce = {
|
||||
header: source?.introduce?.header || {},
|
||||
services: Array.isArray(source?.introduce?.services)
|
||||
? source.introduce.services
|
||||
: [],
|
||||
};
|
||||
|
||||
// Stats
|
||||
const stats = Array.isArray(source?.stats) ? source.stats : [];
|
||||
|
||||
// Features: header + items
|
||||
const features = {
|
||||
header: source?.features?.header || {},
|
||||
items: Array.isArray(source?.features?.items) ? source.features.items : [],
|
||||
};
|
||||
|
||||
// Activities
|
||||
const activities = source?.activities || {};
|
||||
|
||||
// Newsletter
|
||||
const newsletter = source?.newsletter || {};
|
||||
|
||||
// Events: header + items
|
||||
const events = {
|
||||
header: source?.events?.header || {},
|
||||
items: Array.isArray(source?.events?.items) ? source.events.items : [],
|
||||
};
|
||||
|
||||
return {
|
||||
hero,
|
||||
introduce,
|
||||
stats,
|
||||
features,
|
||||
activities,
|
||||
newsletter,
|
||||
events,
|
||||
updatedAt: new Date(),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Migration: aboutus
|
||||
*/
|
||||
async function migrate() {
|
||||
try {
|
||||
await connectDB();
|
||||
|
||||
const filePath = path.join(__dirname, "..", "data", "aboutUs.json");
|
||||
const raw = await fs.readFile(filePath, "utf8");
|
||||
const source = JSON.parse(raw);
|
||||
|
||||
const doc = transformAboutUs(source);
|
||||
|
||||
await AboutUs.create(doc);
|
||||
|
||||
const mongoose = require('mongoose');
|
||||
await mongoose.disconnect();
|
||||
process.exit(0);
|
||||
} catch (error) {
|
||||
console.error('Migration error:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Chạy migration nếu được gọi trực tiếp
|
||||
if (require.main === module) {
|
||||
migrate();
|
||||
}
|
||||
|
||||
module.exports = { migrate };
|
||||
Reference in New Issue
Block a user