Display information of project on home tab
This commit is contained in:
@@ -103,6 +103,10 @@ app.use("/runcases", runCaseBuldNewRoute);
|
||||
app.use("/runcases", runCaseDeleteRoute);
|
||||
app.use("/runcases", runCaseBulkDeleteRoute);
|
||||
|
||||
// "/home"
|
||||
const homeIndexRoute = require("./routes/home/index")(sequelize);
|
||||
app.use("/home", homeIndexRoute);
|
||||
|
||||
const PORT = process.env.PORT || 3001;
|
||||
app.listen(PORT, () => {
|
||||
console.log(`Server is running on port ${PORT}`);
|
||||
|
||||
49
backend/routes/home/index.js
Normal file
49
backend/routes/home/index.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
const defineProject = require("../../models/projects");
|
||||
const defineFolder = require("../../models/folders");
|
||||
const defineCase = require("../../models/cases");
|
||||
const defineRun = require("../../models/runs");
|
||||
const defineRunCase = require("../../models/runCases");
|
||||
const { DataTypes } = require("sequelize");
|
||||
|
||||
module.exports = function (sequelize) {
|
||||
const Project = defineProject(sequelize, DataTypes);
|
||||
const Folder = defineFolder(sequelize, DataTypes);
|
||||
const Case = defineCase(sequelize, DataTypes);
|
||||
const Run = defineRun(sequelize, DataTypes);
|
||||
const RunCase = defineRunCase(sequelize, DataTypes);
|
||||
Project.hasMany(Folder, { foreignKey: "projectId" });
|
||||
Folder.hasMany(Case, { foreignKey: "folderId" });
|
||||
Project.hasMany(Run, { foreignKey: "projectId" });
|
||||
Run.hasMany(RunCase, { foreignKey: "runId" });
|
||||
|
||||
router.get("/:projectId", async (req, res) => {
|
||||
const projectId = req.params.projectId;
|
||||
|
||||
if (!projectId) {
|
||||
return res.status(400).json({ error: "projectId is required" });
|
||||
}
|
||||
|
||||
try {
|
||||
const project = await Project.findByPk(projectId, {
|
||||
include: [
|
||||
{
|
||||
model: Folder,
|
||||
include: [{ model: Case }],
|
||||
},
|
||||
{ model: Run, include: [{ model: RunCase }] },
|
||||
],
|
||||
});
|
||||
if (!project) {
|
||||
return res.status(404).send("Project not found");
|
||||
}
|
||||
res.json(project);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
res.status(500).send("Internal Server Error");
|
||||
}
|
||||
});
|
||||
|
||||
return router;
|
||||
};
|
||||
Reference in New Issue
Block a user