Sort steps by junction table's column

This commit is contained in:
Takeshi Kimata
2024-03-09 13:27:52 +09:00
parent 548bc43bea
commit 62df98db89
3 changed files with 37 additions and 1 deletions

View File

@@ -27,6 +27,10 @@ module.exports = {
onUpdate: "CASCADE", onUpdate: "CASCADE",
onDelete: "CASCADE", onDelete: "CASCADE",
}, },
stepNo: {
type: Sequelize.INTEGER,
allowNull: false,
},
createdAt: { createdAt: {
type: Sequelize.DATE, type: Sequelize.DATE,
allowNull: false, allowNull: false,

View File

@@ -20,7 +20,10 @@ module.exports = function (sequelize) {
if (caseId) { if (caseId) {
// Include steps if requested using caseId // Include steps if requested using caseId
const testcase = await Case.findByPk(caseId, { const testcase = await Case.findByPk(caseId, {
include: Step, include: [{
model: Step,
through: { attributes: ['stepNo'] },
}],
}); });
return res.json(testcase); return res.json(testcase);
} }

View File

@@ -122,6 +122,18 @@ module.exports = {
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}, },
{
step: "Sample Step 3",
result: "Sample Result 3",
createdAt: new Date(),
updatedAt: new Date(),
},
{
step: "Sample Step 4",
result: "Sample Result 4",
createdAt: new Date(),
updatedAt: new Date(),
},
]); ]);
// Add case-step join table // Add case-step join table
@@ -129,18 +141,35 @@ module.exports = {
{ {
caseId: 1, caseId: 1,
stepId: 1, stepId: 1,
stepNo: 1,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}, },
{ {
caseId: 1, caseId: 1,
stepId: 2, stepId: 2,
stepNo: 2,
createdAt: new Date(),
updatedAt: new Date(),
},
{
caseId: 1,
stepId: 3,
stepNo: 3,
createdAt: new Date(),
updatedAt: new Date(),
},
{
caseId: 1,
stepId: 4,
stepNo: 4,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}, },
{ {
caseId: 2, caseId: 2,
stepId: 2, stepId: 2,
stepNo: 1,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}, },