ML-Learner / Backend_node /src /utils /seedTemplates.ts
VashuTheGreat2's picture
Upload folder using huggingface_hub
c01955c verified
import mongoose from "mongoose";
import dotenv from "dotenv";
import fs from "fs";
import path from "path";
import { DB_NAME } from '../constants/constants';
import Template from "../models/templates.models.js";
dotenv.config({
path: "./.env"
});
const seedTemplates = async function seedTemplates() {
if (!process.env.MONGODB_URI) {
console.error("MONGODB_URI is not defined");
return;
}
try {
const connectionString = process.env.MONGODB_URI
? `${process.env.MONGODB_URI}/${DB_NAME}`
: `mongodb://localhost:27017/${DB_NAME}`;
await mongoose.connect(connectionString);
console.log(`Connected to MongoDB: ${DB_NAME}`);
const templatesDir = path.join(process.cwd(), "src", "templates");
const files = fs.readdirSync(templatesDir);
for (const file of files) {
if (file.endsWith(".ejs")) {
const match = file.match(/resume(\d+)\.ejs/);
if (!match) continue;
const id = match[1];
const templatePath = path.join(templatesDir, file);
const dataPath = path.join(templatesDir, `resume${id}.data.json`);
const templateContent = fs.readFileSync(templatePath, "utf-8");
// Read the JSON data file synchronously
const tempDataRaw = fs.readFileSync(dataPath, "utf-8");
const tempData = JSON.parse(tempDataRaw);
const title = `Resume Template ${id}`;
// Update or create template
await Template.findOneAndUpdate(
{ title },
{
template: templateContent,
temp_data: tempData
},
{ upsert: true, new: true }
);
console.log(`Seeded/Updated template: ${title}`);
}
}
console.log("Seeding completed successfully");
} catch (error) {
console.error("Error seeding templates:", error);
} finally {
await mongoose.disconnect();
}
};
seedTemplates();