Files
pp-tcms/backend/routes/cases/new.js
2024-03-23 23:17:40 +09:00

74 lines
1.4 KiB
JavaScript

const express = require("express");
const router = express.Router();
const defineCase = require("../../models/cases");
const { DataTypes } = require("sequelize");
const requiredFields = [
"title",
"state",
"priority",
"type",
"automationStatus",
"template",
"folderId",
];
function isEmpty(value) {
if (value === null || value === undefined) {
return true;
} else {
return false;
}
}
module.exports = function (sequelize) {
const Case = defineCase(sequelize, DataTypes);
router.post("/", async (req, res) => {
try {
if (
requiredFields.some((field) => {
return isEmpty(req.body[field]);
})
) {
return res.status(400).json({
error:
"Title, state, priority, type, automationStatus, template, and folderId are required",
});
}
const {
title,
state,
priority,
type,
automationStatus,
description,
template,
preConditions,
expectedResults,
folderId,
} = req.body;
const newCase = await Case.create({
title,
state,
priority,
type,
automationStatus,
description,
template,
preConditions,
expectedResults,
folderId,
});
res.json(newCase);
} catch (error) {
res.status(500).json({ error: "Internal server error" });
}
});
return router;
};