chore: Unify backend express project into ESM (#281)

This commit is contained in:
kimatata
2025-09-15 22:46:46 +09:00
committed by GitHub
parent 72fd3af24f
commit 761869736e
83 changed files with 2129 additions and 2328 deletions

View File

@@ -1,13 +1,17 @@
const fs = require('fs');
const path = require('path');
const express = require('express');
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineAttachment = require('../../models/attachments');
import { DataTypes } from 'sequelize';
import defineAttachment from '../../models/attachments.js';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
module.exports = function (sequelize) {
export default function (sequelize) {
const Attachment = defineAttachment(sequelize, DataTypes);
// TODO middleware to verify user permission to delete attachment
router.delete('/:attachmentId', async (req, res) => {
const attachmentId = req.params.attachmentId;
const t = await sequelize.transaction();
@@ -41,4 +45,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,12 +1,17 @@
const fs = require('fs');
const path = require('path');
const express = require('express');
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineAttachment = require('../../models/attachments');
import { DataTypes } from 'sequelize';
import defineAttachment from '../../models/attachments.js';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
module.exports = function (sequelize) {
export default function (sequelize) {
const Attachment = defineAttachment(sequelize, DataTypes);
// TODO middleware to verify user permission to get attachment
router.get('/download/:attachmentId', async (req, res) => {
const attachmentId = req.params.attachmentId;
@@ -30,4 +35,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,13 +1,16 @@
const fs = require('fs');
const path = require('path');
const express = require('express');
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import multer from 'multer';
import express from 'express';
const router = express.Router();
const multer = require('multer');
const { DataTypes } = require('sequelize');
const defineAttachment = require('../../models/attachments');
const defineCaseAttachment = require('../../models/caseAttachments');
import { DataTypes } from 'sequelize';
import defineAttachment from '../../models/attachments.js';
import defineCaseAttachment from '../../models/caseAttachments.js';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
module.exports = function (sequelize) {
export default function (sequelize) {
const Attachment = defineAttachment(sequelize, DataTypes);
const CaseAttachment = defineCaseAttachment(sequelize, DataTypes);
@@ -46,6 +49,7 @@ module.exports = function (sequelize) {
const upload = multer({ storage });
// TODO middleware to verify user permission to upload files
router.post('/', upload.array('files', 10), async (req, res) => {
const t = await sequelize.transaction();
try {
@@ -79,4 +83,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineCase = require('../../models/cases');
import { DataTypes } from 'sequelize';
import defineCase from '../../models/cases.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectDeveloperFromProjectId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectDeveloperFromProjectId } = editableMiddleware(sequelize);
const Case = defineCase(sequelize, DataTypes);
router.post('/bulkdelete', verifySignedIn, verifyProjectDeveloperFromProjectId, async (req, res) => {
@@ -24,4 +26,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,13 +1,15 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const Papa = require('papaparse');
const defineCase = require('../../models/cases');
import { DataTypes } from 'sequelize';
import Papa from 'papaparse';
import defineCase from '../../models/cases.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
export default function (sequelize) {
const Case = defineCase(sequelize, DataTypes);
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromFolderId } = require('../../middleware/verifyVisible')(sequelize);
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromFolderId } = visibilityMiddleware(sequelize);
router.get('/download', verifySignedIn, verifyProjectVisibleFromFolderId, async (req, res) => {
const { folderId, type } = req.query;
@@ -51,4 +53,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineCase = require('../../models/cases');
import { DataTypes } from 'sequelize';
import defineCase from '../../models/cases.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectDeveloperFromCaseId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectDeveloperFromCaseId } = editableMiddleware(sequelize);
const Case = defineCase(sequelize, DataTypes);
router.put('/:caseId', verifySignedIn, verifyProjectDeveloperFromCaseId, async (req, res) => {
@@ -30,4 +32,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,14 +1,14 @@
import express from 'express';
const router = express.Router();
import { DataTypes, Op } from 'sequelize';
import defineCase from '../../models/cases';
import defineCase from '../../models/cases.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const Case = defineCase(sequelize, DataTypes);
const { verifyProjectVisibleFromFolderId } = visibilityMiddleware(sequelize);
const Case = defineCase(sequelize, DataTypes);
router.get('/', verifySignedIn, verifyProjectVisibleFromFolderId, async (req, res) => {
const { folderId, priority, type, q } = req.query;

View File

@@ -5,7 +5,7 @@ import { Sequelize, Op } from 'sequelize';
import casesIndexRoute from './index';
// mock of authentication middleware
vi.mock('../../middleware/auth', () => ({
vi.mock('../../middleware/auth.js', () => ({
default: () => ({
verifySignedIn: vi.fn((req, res, next) => {
req.userId = 1;
@@ -13,7 +13,7 @@ vi.mock('../../middleware/auth', () => ({
}),
}),
}));
vi.mock('../../middleware/verifyVisible', () => ({
vi.mock('../../middleware/verifyVisible.js', () => ({
default: () => ({
verifyProjectVisibleFromFolderId: vi.fn((req, res, next) => {
next();
@@ -25,7 +25,7 @@ vi.mock('../../middleware/verifyVisible', () => ({
const mockCase = {
findAll: vi.fn(),
};
vi.mock('../../models/cases', () => ({
vi.mock('../../models/cases.js', () => ({
default: () => mockCase,
}));

View File

@@ -1,12 +1,14 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineProject = require('../../models/projects');
const defineFolder = require('../../models/folders');
const defineCase = require('../../models/cases');
const defineRunCase = require('../../models/runCases');
import { DataTypes } from 'sequelize';
import defineProject from '../../models/projects.js';
import defineFolder from '../../models/folders.js';
import defineCase from '../../models/cases.js';
import defineRunCase from '../../models/runCases.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
export default function (sequelize) {
const Project = defineProject(sequelize, DataTypes);
const Folder = defineFolder(sequelize, DataTypes);
const Case = defineCase(sequelize, DataTypes);
@@ -17,8 +19,8 @@ module.exports = function (sequelize) {
Case.belongsTo(Folder, { foreignKey: 'folderId' });
Case.hasMany(RunCase, { foreignKey: 'caseId' });
RunCase.belongsTo(Case, { foreignKey: 'caseId' });
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromProjectId } = require('../../middleware/verifyVisible')(sequelize);
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromProjectId } = visibilityMiddleware(sequelize);
router.get('/byproject', verifySignedIn, verifyProjectVisibleFromProjectId, async (req, res) => {
const { projectId } = req.query;
@@ -51,4 +53,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,7 +1,9 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineCase = require('../../models/cases');
import { DataTypes } from 'sequelize';
import defineCase from '../../models/cases.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
const requiredFields = ['title', 'state', 'priority', 'type', 'automationStatus', 'template'];
@@ -13,9 +15,9 @@ function isEmpty(value) {
}
}
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectDeveloperFromFolderId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectDeveloperFromFolderId } = editableMiddleware(sequelize);
const Case = defineCase(sequelize, DataTypes);
router.post('/', verifySignedIn, verifyProjectDeveloperFromFolderId, async (req, res) => {
@@ -56,4 +58,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineCase = require('../../models/cases');
const defineStep = require('../../models/steps');
const defineAttachment = require('../../models/attachments');
import { DataTypes } from 'sequelize';
import defineCase from '../../models/cases.js';
import defineStep from '../../models/steps.js';
import defineAttachment from '../../models/attachments.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
export default function (sequelize) {
const Case = defineCase(sequelize, DataTypes);
const Step = defineStep(sequelize, DataTypes);
const Attachment = defineAttachment(sequelize, DataTypes);
@@ -13,8 +15,8 @@ module.exports = function (sequelize) {
Step.belongsToMany(Case, { through: 'caseSteps' });
Case.belongsToMany(Attachment, { through: 'caseAttachments' });
Attachment.belongsToMany(Case, { through: 'caseAttachments' });
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromCaseId } = require('../../middleware/verifyVisible')(sequelize);
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromCaseId } = visibilityMiddleware(sequelize);
router.get('/:caseId', verifySignedIn, verifyProjectVisibleFromCaseId, async (req, res) => {
const caseId = req.params.caseId;
@@ -43,4 +45,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineFolder = require('../../models/folders');
import { DataTypes } from 'sequelize';
import defineFolder from '../../models/folders.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectDeveloperFromFolderId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectDeveloperFromFolderId } = editableMiddleware(sequelize);
const Folder = defineFolder(sequelize, DataTypes);
router.delete('/:folderId', verifySignedIn, verifyProjectDeveloperFromFolderId, async (req, res) => {
@@ -24,4 +26,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineFolder = require('../../models/folders');
import { DataTypes } from 'sequelize';
import defineFolder from '../../models/folders.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectDeveloperFromFolderId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectDeveloperFromFolderId } = editableMiddleware(sequelize);
const Folder = defineFolder(sequelize, DataTypes);
router.put('/:folderId', verifySignedIn, verifyProjectDeveloperFromFolderId, async (req, res) => {
@@ -30,4 +32,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineFolder = require('../../models/folders');
import { DataTypes } from 'sequelize';
import defineFolder from '../../models/folders.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromProjectId } = require('../../middleware/verifyVisible')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromProjectId } = visibilityMiddleware(sequelize);
const Folder = defineFolder(sequelize, DataTypes);
router.get('/', verifySignedIn, verifyProjectVisibleFromProjectId, async (req, res) => {
@@ -29,4 +31,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineFolder = require('../../models/folders');
import { DataTypes } from 'sequelize';
import defineFolder from '../../models/folders.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectDeveloperFromProjectId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectDeveloperFromProjectId } = editableMiddleware(sequelize);
const Folder = defineFolder(sequelize, DataTypes);
router.post('/', verifySignedIn, verifyProjectDeveloperFromProjectId, async (req, res) => {
@@ -31,4 +33,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,10 +1,10 @@
const express = require('express');
import express from 'express';
const router = express.Router();
module.exports = function () {
export default function () {
router.get('/', async (req, res) => {
res.json({ status: 'ok' });
});
return router;
};
}

View File

@@ -1,15 +1,17 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
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');
import { DataTypes } from 'sequelize';
import defineProject from '../../models/projects.js';
import defineFolder from '../../models/folders.js';
import defineCase from '../../models/cases.js';
import defineRun from '../../models/runs.js';
import defineRunCase from '../../models/runCases.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromProjectId } = require('../../middleware/verifyVisible')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromProjectId } = visibilityMiddleware(sequelize);
const Project = defineProject(sequelize, DataTypes);
const Folder = defineFolder(sequelize, DataTypes);
@@ -49,4 +51,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,9 +1,10 @@
const express = require('express');
import express from 'express';
const router = express.Router();
// "/" GET
router.get('/', (req, res) => {
res.send('This is UnitTCMS API server');
});
export default function () {
router.get('/', (req, res) => {
res.send('This is UnitTCMS API server');
});
module.exports = router;
return router;
}

View File

@@ -1,11 +1,12 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineMember = require('../../models/members');
const defineProject = require('../../models/projects');
import { DataTypes } from 'sequelize';
import defineMember from '../../models/members.js';
import defineProject from '../../models/projects.js';
import authMiddleware from '../../middleware/auth.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const Member = defineMember(sequelize, DataTypes);
const Project = defineProject(sequelize, DataTypes);
@@ -45,4 +46,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineMember = require('../../models/members');
import { DataTypes } from 'sequelize';
import defineMember from '../../models/members.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectManagerFromProjectId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectManagerFromProjectId } = editableMiddleware(sequelize);
const Member = defineMember(sequelize, DataTypes);
router.delete('/', verifySignedIn, verifyProjectManagerFromProjectId, async (req, res) => {
@@ -34,4 +36,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineMember = require('../../models/members');
import { DataTypes } from 'sequelize';
import defineMember from '../../models/members.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectManagerFromProjectId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectManagerFromProjectId } = editableMiddleware(sequelize);
const Member = defineMember(sequelize, DataTypes);
router.put('/', verifySignedIn, verifyProjectManagerFromProjectId, async (req, res) => {
@@ -38,4 +40,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,12 +1,14 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineUser = require('../../models/users');
const defineMember = require('../../models/members');
import { DataTypes } from 'sequelize';
import defineUser from '../../models/users.js';
import defineMember from '../../models/members.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromProjectId } = require('../../middleware/verifyVisible')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromProjectId } = visibilityMiddleware(sequelize);
const User = defineUser(sequelize, DataTypes);
const Member = defineMember(sequelize, DataTypes);
Member.belongsTo(User, { foreignKey: 'userId' });
@@ -37,4 +39,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,12 +1,14 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineMember = require('../../models/members');
const { memberRoles } = require('../../routes/users/authSettings');
import { DataTypes } from 'sequelize';
import defineMember from '../../models/members.js';
import { memberRoles } from '../../routes/users/authSettings.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectManagerFromProjectId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectManagerFromProjectId } = editableMiddleware(sequelize);
const Member = defineMember(sequelize, DataTypes);
router.post('/', verifySignedIn, verifyProjectManagerFromProjectId, async (req, res) => {
@@ -41,4 +43,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,13 +1,15 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineProject = require('../../models/projects');
const defineFolder = require('../../models/folders');
const defineRun = require('../../models/runs');
import { DataTypes } from 'sequelize';
import defineProject from '../../models/projects.js';
import defineFolder from '../../models/folders.js';
import defineRun from '../../models/runs.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectOwner } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectOwner } = editableMiddleware(sequelize);
const Project = defineProject(sequelize, DataTypes);
const Folder = defineFolder(sequelize, DataTypes);
const Run = defineRun(sequelize, DataTypes);
@@ -38,4 +40,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineProject = require('../../models/projects');
import { DataTypes } from 'sequelize';
import defineProject from '../../models/projects.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectOwner } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectOwner } = editableMiddleware(sequelize);
const Project = defineProject(sequelize, DataTypes);
router.put('/:projectId', verifySignedIn, verifyProjectOwner, async (req, res) => {
@@ -29,4 +31,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,12 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes, Op } = require('sequelize');
const defineProject = require('../../models/projects');
const defineMember = require('../../models/members');
import { DataTypes, Op } from 'sequelize';
import defineProject from '../../models/projects.js';
import defineMember from '../../models/members.js';
import authMiddleware from '../../middleware/auth.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const Project = defineProject(sequelize, DataTypes);
const Member = defineMember(sequelize, DataTypes);
Project.hasMany(Member, { foreignKey: 'projectId' });
@@ -49,4 +50,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,10 +1,11 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineProject = require('../../models/projects');
import { DataTypes } from 'sequelize';
import defineProject from '../../models/projects.js';
import authMiddleware from '../../middleware/auth.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const Project = defineProject(sequelize, DataTypes);
router.post('/', verifySignedIn, async (req, res) => {
@@ -24,4 +25,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,12 +1,14 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineProject = require('../../models/projects');
const defineFolder = require('../../models/folders');
import { DataTypes } from 'sequelize';
import defineProject from '../../models/projects.js';
import defineFolder from '../../models/folders.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromProjectId } = require('../../middleware/verifyVisible')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromProjectId } = visibilityMiddleware(sequelize);
const Project = defineProject(sequelize, DataTypes);
const Folder = defineFolder(sequelize, DataTypes);
Project.hasMany(Folder, { foreignKey: 'projectId' });
@@ -36,4 +38,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineRunCase = require('../../models/runCases');
import { DataTypes } from 'sequelize';
import defineRunCase from '../../models/runCases.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectReporterFromRunId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectReporterFromRunId } = editableMiddleware(sequelize);
const RunCase = defineRunCase(sequelize, DataTypes);
router.post('/update', verifySignedIn, verifyProjectReporterFromRunId, async (req, res) => {
@@ -71,4 +73,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineRunCase = require('../../models/runCases');
import { DataTypes } from 'sequelize';
import defineRunCase from '../../models/runCases.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromRunId } = require('../../middleware/verifyVisible')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromRunId } = visibilityMiddleware(sequelize);
const RunCase = defineRunCase(sequelize, DataTypes);
router.get('/', verifySignedIn, verifyProjectVisibleFromRunId, async (req, res) => {
@@ -29,4 +31,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineRun = require('../../models/runs');
import { DataTypes } from 'sequelize';
import defineRun from '../../models/runs.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectReporterFromRunId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectReporterFromRunId } = editableMiddleware(sequelize);
const Run = defineRun(sequelize, DataTypes);
router.delete('/:runId', verifySignedIn, verifyProjectReporterFromRunId, async (req, res) => {
@@ -24,4 +26,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,17 +1,18 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const Papa = require('papaparse');
const { create } = require('xmlbuilder2');
import { DataTypes } from 'sequelize';
import Papa from 'papaparse';
import { create } from 'xmlbuilder2';
import defineRun from '../../models/runs.js';
import defineRunCase from '../../models/runCases.js';
import defineCase from '../../models/cases.js';
import defineFolder from '../../models/folders.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
const defineRun = require('../../models/runs');
const defineRunCase = require('../../models/runCases');
const defineCase = require('../../models/cases');
const defineFolder = require('../../models/folders');
module.exports = function (sequelize) {
const { DataTypes } = require('sequelize');
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromRunId } = require('../../middleware/verifyVisible')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromRunId } = visibilityMiddleware(sequelize);
const Run = defineRun(sequelize, DataTypes);
const RunCase = defineRunCase(sequelize, DataTypes);
@@ -123,4 +124,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,12 +1,14 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineRun = require('../../models/runs');
import { DataTypes } from 'sequelize';
import defineRun from '../../models/runs.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
export default function (sequelize) {
const Run = defineRun(sequelize, DataTypes);
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectReporterFromRunId } = require('../../middleware/verifyEditable')(sequelize);
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectReporterFromRunId } = editableMiddleware(sequelize);
router.put('/:runId', verifySignedIn, verifyProjectReporterFromRunId, async (req, res) => {
const runId = req.params.runId;
@@ -27,4 +29,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineRun = require('../../models/runs');
import { DataTypes } from 'sequelize';
import defineRun from '../../models/runs.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromProjectId } = require('../../middleware/verifyVisible')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromProjectId } = visibilityMiddleware(sequelize);
const Run = defineRun(sequelize, DataTypes);
router.get('/', verifySignedIn, verifyProjectVisibleFromProjectId, async (req, res) => {
@@ -29,4 +31,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,13 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineRun = require('../../models/runs');
import { DataTypes } from 'sequelize';
import defineRun from '../../models/runs.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectReporterFromProjectId } = require('../../middleware/verifyEditable')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectReporterFromProjectId } = editableMiddleware(sequelize);
const Run = defineRun(sequelize, DataTypes);
router.post('/', verifySignedIn, verifyProjectReporterFromProjectId, async (req, res) => {
@@ -32,4 +34,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,12 +1,14 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes, literal } = require('sequelize');
const defineRun = require('../../models/runs');
const defineRunCase = require('../../models/runCases');
import { DataTypes, literal } from 'sequelize';
import defineRun from '../../models/runs.js';
import defineRunCase from '../../models/runCases.js';
import authMiddleware from '../../middleware/auth.js';
import visibilityMiddleware from '../../middleware/verifyVisible.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectVisibleFromRunId } = require('../../middleware/verifyVisible')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectVisibleFromRunId } = visibilityMiddleware(sequelize);
const Run = defineRun(sequelize, DataTypes);
const RunCase = defineRunCase(sequelize, DataTypes);
@@ -40,4 +42,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,14 +1,16 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineStep = require('../../models/steps');
const defineCaseStep = require('../../models/caseSteps');
import { DataTypes } from 'sequelize';
import defineStep from '../../models/steps.js';
import defineCaseStep from '../../models/caseSteps.js';
import authMiddleware from '../../middleware/auth.js';
import editableMiddleware from '../../middleware/verifyEditable.js';
module.exports = function (sequelize) {
export default function (sequelize) {
const Step = defineStep(sequelize, DataTypes);
const CaseStep = defineCaseStep(sequelize, DataTypes);
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const { verifyProjectDeveloperFromCaseId } = require('../../middleware/verifyEditable')(sequelize);
const { verifySignedIn } = authMiddleware(sequelize);
const { verifyProjectDeveloperFromCaseId } = editableMiddleware(sequelize);
router.post('/update', verifySignedIn, verifyProjectDeveloperFromCaseId, async (req, res) => {
const caseId = req.query.caseId;
@@ -87,4 +89,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -2,4 +2,4 @@ const roles = [{ uid: 'administrator' }, { uid: 'user' }];
const memberRoles = [{ uid: 'manager' }, { uid: 'developer' }, { uid: 'reporter' }];
const defaultDangerKey = 'test-plat-default-key';
module.exports = { roles, memberRoles, defaultDangerKey };
export { roles, memberRoles, defaultDangerKey };

View File

@@ -1,10 +1,11 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineUser = require('../../models/users');
import { DataTypes } from 'sequelize';
import defineUser from '../../models/users.js';
import authMiddleware from '../../middleware/auth.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const User = defineUser(sequelize, DataTypes);
router.get('/find/:userId', verifySignedIn, async (req, res) => {
@@ -33,4 +34,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,10 +1,11 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const defineUser = require('../../models/users');
import { DataTypes } from 'sequelize';
import defineUser from '../../models/users.js';
import authMiddleware from '../../middleware/auth.js';
module.exports = function (sequelize) {
const { verifySignedIn, verifyAdmin } = require('../../middleware/auth')(sequelize);
export default function (sequelize) {
const { verifySignedIn, verifyAdmin } = authMiddleware(sequelize);
const User = defineUser(sequelize, DataTypes);
router.get('/', verifySignedIn, verifyAdmin, async (req, res) => {
@@ -20,4 +21,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,11 +1,12 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes, Op } = require('sequelize');
const defineUser = require('../../models/users');
const defineMember = require('../../models/members');
import { DataTypes, Op } from 'sequelize';
import defineUser from '../../models/users.js';
import defineMember from '../../models/members.js';
import authMiddleware from '../../middleware/auth.js';
module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize);
export default function (sequelize) {
const { verifySignedIn } = authMiddleware(sequelize);
const User = defineUser(sequelize, DataTypes);
const Member = defineMember(sequelize, DataTypes);
@@ -42,4 +43,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,12 +1,12 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');
const defineUser = require('../../models/users');
const { defaultDangerKey } = require('./authSettings');
import { DataTypes } from 'sequelize';
import bcrypt from 'bcrypt';
import jwt from 'jsonwebtoken';
import defineUser from '../../models/users.js';
import { defaultDangerKey } from './authSettings.js';
module.exports = function (sequelize) {
export default function (sequelize) {
const User = defineUser(sequelize, DataTypes);
const secretKey = process.env.SECRET_KEY || defaultDangerKey;
@@ -39,4 +39,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -1,12 +1,12 @@
const express = require('express');
import express from 'express';
const router = express.Router();
const { DataTypes } = require('sequelize');
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');
const defineUser = require('../../models/users');
const { roles, defaultDangerKey } = require('./authSettings');
import { DataTypes } from 'sequelize';
import bcrypt from 'bcrypt';
import jwt from 'jsonwebtoken';
import defineUser from '../../models/users.js';
import { roles, defaultDangerKey } from './authSettings.js';
module.exports = function (sequelize) {
export default function (sequelize) {
const User = defineUser(sequelize, DataTypes);
const secretKey = process.env.SECRET_KEY || defaultDangerKey;
@@ -42,4 +42,4 @@ module.exports = function (sequelize) {
});
return router;
};
}

View File

@@ -3,13 +3,13 @@ import request from 'supertest';
import express from 'express';
import { Sequelize } from 'sequelize';
import updateRoute from './update';
import { roles } from './authSettings';
import { roles } from './authSettings.js';
const adminRoleIndex = roles.findIndex((entry) => entry.uid === 'administrator');
const userRoleIndex = roles.findIndex((entry) => entry.uid === 'user');
// mock of authentication middleware
vi.mock('../../middleware/auth', () => ({
vi.mock('../../middleware/auth.js', () => ({
default: () => ({
verifySignedIn: vi.fn((req, res, next) => {
req.userId = 1; // Mock user ID
@@ -27,7 +27,7 @@ const mockUser = {
count: vi.fn(),
update: vi.fn(),
};
vi.mock('../../models/users', () => ({
vi.mock('../../models/users.js', () => ({
default: () => mockUser,
}));