UNPKG

@syngrisi/syngrisi

Version:
54 lines (46 loc) 2.21 kB
import express from 'express'; import { OpenAPIRegistry } from '@asteasolutions/zod-to-openapi'; import * as baselineController from '@controllers/baseline.controller'; import { Midleware } from '@types'; import { validateRequest } from '@utils/validateRequest'; import { BaselineGetSchema, BaselinePutSchema } from '@schemas/Baseline.schema'; import { createApiEmptyResponse, createPaginatedApiResponse } from '@api-docs/openAPIResponseBuilders'; import { ensureLoggedIn } from '@middlewares/ensureLogin'; import { createRequestQuerySchema } from '@schemas/utils/createRequestQuerySchema'; import { RequestPaginationSchema } from '@schemas/common/RequestPagination.schema'; import { createRequestOpenApiBodySchema } from '@schemas/utils/createRequestOpenApiBodySchema'; import { createRequestBodySchema } from '@schemas/utils/createRequestBodySchema'; import { commonValidations } from '@schemas/utils'; import { getByIdParamsSchema } from '@schemas/utils/createRequestParamsSchema'; import { ensureLoggedInOrApiKey } from '../../middlewares/ensureLogin/ensureLoggedIn'; export const registry = new OpenAPIRegistry(); const router = express.Router(); registry.registerPath({ method: 'get', path: '/v1/baselines', summary: "List of baselines with pagination, and optional filtering and sorting.", tags: ['Baselines'], request: { query: RequestPaginationSchema }, responses: createPaginatedApiResponse(BaselineGetSchema, 'Success'), }); router.get( '/', ensureLoggedInOrApiKey(), validateRequest(createRequestQuerySchema(RequestPaginationSchema), 'get, /v1/baselines'), baselineController.get as Midleware ); registry.registerPath({ method: 'put', path: '/v1/baselines/{id}', summary: "Only for testing purposes for now", tags: ['Baselines'], request: { params: commonValidations.paramsId.params, body: createRequestOpenApiBodySchema(BaselinePutSchema) }, responses: createApiEmptyResponse('Success'), }); router.put( '/:id', ensureLoggedIn(), validateRequest(getByIdParamsSchema().merge(createRequestBodySchema(BaselinePutSchema)), 'put, /v1/baselines/{id}'), baselineController.put as Midleware ); export default router;