generated from avior/template-web-astro
34
src/pages/api/v1/projects/[id]/issues/index.ts
Normal file
34
src/pages/api/v1/projects/[id]/issues/index.ts
Normal file
@ -0,0 +1,34 @@
|
||||
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()
|
||||
}
|
Reference in New Issue
Block a user