- 所有控制器中从libs/prisma.ts导入prisma替代旧的libs/db.ts - 规范了step模块中zod验证架构的格式与换行 - 生成Prisma客户端及类型定义文件,包含browser、client、commonInputTypes、enums和内部类文件 - 优化listStepsQuerySchema默认参数与链式调用格式 - 保持代码风格一致,提升可维护性和类型安全性
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { Controller, Get, Post } from '../../decorators/route.ts';
|
|
import type { Prisma } from '../../generated/prisma/index.js';
|
|
import { prisma } from '../../libs/prisma.ts';
|
|
import type { Context } from 'koa';
|
|
|
|
@Controller('/deployments')
|
|
export class DeploymentController {
|
|
@Get('')
|
|
async list(ctx: Context) {
|
|
const { page = 1, pageSize = 10 } = ctx.query;
|
|
const result = await prisma.deployment.findMany({
|
|
where: {
|
|
valid: 1,
|
|
},
|
|
take: Number(pageSize),
|
|
skip: (Number(page) - 1) * Number(pageSize),
|
|
orderBy: {
|
|
createdAt: 'desc',
|
|
},
|
|
});
|
|
const total = await prisma.deployment.count();
|
|
|
|
return {
|
|
data: result,
|
|
page: Number(page),
|
|
pageSize: Number(pageSize),
|
|
total: total,
|
|
};
|
|
}
|
|
|
|
@Post('')
|
|
async create(ctx: Context) {
|
|
const body = ctx.request.body as Prisma.DeploymentCreateInput;
|
|
|
|
prisma.deployment.create({
|
|
data: {
|
|
branch: body.branch,
|
|
commitHash: body.commitHash,
|
|
commitMessage: body.commitMessage,
|
|
|
|
valid: 1,
|
|
},
|
|
});
|
|
}
|
|
}
|