feat: Add base to project

Signed-off-by: Avior <git@avior.me>
This commit is contained in:
2024-05-16 16:45:50 +02:00
parent 9b2d412a9e
commit f50ec828fb
36 changed files with 5248 additions and 1698 deletions

View 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()
}

View 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()
}

View File

@ -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()
}