@syngrisi/syngrisi
Version:
Syngrisi - Visual Testing Tool
165 lines (144 loc) • 4.77 kB
text/typescript
import express from 'express';
import { OpenAPIRegistry } from '@asteasolutions/zod-to-openapi';
import * as tasksController from '@controllers/tasks.controller';
import { Midleware } from '@types';
import { ensureLoggedIn } from '@middlewares/ensureLogin';
import { appSettings } from '@settings';
import { authorization } from '@middlewares';
import { SkipValid } from '@schemas/SkipValid.schema';
import { validateRequest } from '@utils/validateRequest';
import { createApiResponse } from '@api-docs/openAPIResponseBuilders';
export const registry = new OpenAPIRegistry();
const router = express.Router();
registry.registerPath({
method: 'get',
path: '/v1/tasks/task_test',
summary: "Test task endpoint",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/task_test',
ensureLoggedIn(),
authorization('admin') as Midleware,
validateRequest(SkipValid, 'get, /v1/tasks/task_test'),
tasksController.task_test as Midleware
);
registry.registerPath({
method: 'get',
path: '/v1/tasks/task_handle_old_checks',
summary: "Handle old checks task",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/task_handle_old_checks',
ensureLoggedIn(),
authorization('admin') as Midleware,
validateRequest(SkipValid, 'get, /v1/tasks/task_handle_old_checks'),
tasksController.task_handle_old_checks as Midleware
);
registry.registerPath({
method: 'get',
path: '/v1/tasks/task_handle_database_consistency',
summary: "Handle database consistency task",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/task_handle_database_consistency',
ensureLoggedIn(),
authorization('admin') as Midleware,
validateRequest(SkipValid, 'get, /v1/tasks/task_handle_database_consistency'),
tasksController.task_handle_database_consistency as Midleware
);
registry.registerPath({
method: 'get',
path: '/v1/tasks/task_remove_old_logs',
summary: "Remove old logs task",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/task_remove_old_logs',
ensureLoggedIn(),
authorization('admin') as Midleware,
validateRequest(SkipValid, 'get, /v1/tasks/task_remove_old_logs'),
tasksController.task_remove_old_logs as Midleware
);
registry.registerPath({
method: 'get',
path: '/v1/tasks/task_handle_orphan_files',
summary: "Handle orphan files task",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/task_handle_orphan_files',
ensureLoggedIn(),
authorization('admin') as Midleware,
validateRequest(SkipValid, 'get, /v1/tasks/task_handle_orphan_files'),
tasksController.task_handle_orphan_files as Midleware
);
registry.registerPath({
method: 'get',
path: '/v1/tasks/task_handle_orphan_baselines',
summary: "Handle orphan baselines task",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/task_handle_orphan_baselines',
ensureLoggedIn(),
authorization('admin') as Midleware,
validateRequest(SkipValid, 'get, /v1/tasks/task_handle_orphan_baselines'),
tasksController.task_handle_orphan_baselines as Midleware
);
registry.registerPath({
method: 'get',
path: '/v1/tasks/loadTestUser',
summary: "Load test user",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/loadTestUser',
(async (req, res, next) => {
const authOverride = process.env.SYNGRISI_AUTH_OVERRIDE ?? process.env.SYNGRISI_AUTH;
if (authOverride === 'false') {
return next();
}
const authEnabled = await appSettings.isAuthEnabled();
if (!authEnabled) {
return next();
}
return ensureLoggedIn()(req, res, next);
}) as Midleware,
validateRequest(SkipValid, 'get, /v1/tasks/loadTestUser'),
tasksController.loadTestUser as Midleware
);
registry.registerPath({
method: 'get',
path: '/v1/tasks/status',
summary: "Get status task, only for the test cases",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/status',
validateRequest(SkipValid, 'get, /v1/tasks/status'),
tasksController.status as Midleware
);
registry.registerPath({
method: 'get',
path: '/v1/tasks/screenshots',
summary: "Get screenshots task",
tags: ['Tasks'],
responses: createApiResponse(SkipValid, 'Success'),
});
router.get(
'/screenshots',
validateRequest(SkipValid, 'get, /v1/tasks/screenshots'),
tasksController.screenshots as Midleware
);
export default router;