generated from avior/template-web-astro
13
src/pages/api/v1/projects/[id]/issues/[issueId].ts
Normal file
13
src/pages/api/v1/projects/[id]/issues/[issueId].ts
Normal file
@ -0,0 +1,13 @@
|
||||
import type { APIRoute } from 'astro'
|
||||
import ResponseBuilder from 'libs/ResponseBuilder'
|
||||
import DaoFactory from 'models/DaoFactory'
|
||||
|
||||
export const GET: APIRoute = async (ctx) => {
|
||||
const projectId = ctx.params.id!
|
||||
const taskId = ctx.params.issueId!
|
||||
const dao = DaoFactory.get('issue')
|
||||
|
||||
return new ResponseBuilder()
|
||||
.body((await dao.findOne({project: projectId, id: taskId})))
|
||||
.build()
|
||||
}
|
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()
|
||||
}
|
@ -1,21 +1,14 @@
|
||||
import type { APIRoute } from 'astro'
|
||||
import ResponseBuilder from 'libs/ResponseBuilder'
|
||||
import DaoFactory from 'models/DaoFactory'
|
||||
import type { Query } from 'models/Query'
|
||||
|
||||
interface Project {
|
||||
name: string
|
||||
id: string
|
||||
}
|
||||
|
||||
export const GET: APIRoute = ({ url }) => {
|
||||
const nameFilter = url.searchParams.get('name')
|
||||
return new ResponseBuilder().body(([
|
||||
{
|
||||
name: 'Holisané',
|
||||
id: 'HOLIS'
|
||||
},
|
||||
{
|
||||
name: 'Aptatio',
|
||||
id: 'APTA'
|
||||
}
|
||||
] as Array<Project>).filter((it) => !nameFilter || it.name.includes(nameFilter))).build()
|
||||
export const GET: APIRoute = async ({ url }) => {
|
||||
const dao = DaoFactory.get('project')
|
||||
const filters: Query<any> = {}
|
||||
url.searchParams.forEach((it, key) => {
|
||||
filters[key] = it
|
||||
})
|
||||
const res = await dao.findAll(filters)
|
||||
return new ResponseBuilder().body(res.data).build()
|
||||
}
|
||||
|
Reference in New Issue
Block a user