generated from avior/template-web-astro
35 lines
918 B
TypeScript
35 lines
918 B
TypeScript
import type { APIRoute } from 'astro'
|
|
import ResponseBuilder from 'libs/ResponseBuilder'
|
|
import DaoFactory from 'models/DaoFactory'
|
|
|
|
export const POST: APIRoute = async (ctx) => {
|
|
const projectId = ctx.params.id!
|
|
const dao = DaoFactory.get('issue')
|
|
const stateDao = DaoFactory.get('state')
|
|
const issueCount = await dao.findAll({
|
|
project: projectId
|
|
})
|
|
const defaultState = await stateDao.findOne({
|
|
project: projectId,
|
|
preset: true
|
|
})
|
|
console.log(issueCount)
|
|
const res = await dao.create({
|
|
...(await ctx.request.json()),
|
|
project: projectId,
|
|
localid: issueCount.rowsTotal + 1,
|
|
state: defaultState?.id ?? 'empty',
|
|
labels: []
|
|
})
|
|
return new ResponseBuilder().body(res).build()
|
|
}
|
|
|
|
export const GET: APIRoute = async (ctx) => {
|
|
const projectId = ctx.params.id!
|
|
const dao = DaoFactory.get('issue')
|
|
|
|
return new ResponseBuilder()
|
|
.body((await dao.findAll({project: projectId})).data)
|
|
.build()
|
|
}
|