Files
foka-ci/apps/server/controllers/deployment/index.ts

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/db.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,
},
});
}
}