first commit
This commit is contained in:
commit
3c0479faf0
169 files changed
+27617
No files matched your search
@@ -0,0 +1,51 @@
|
||||
import type { HttpContext } from '@adonisjs/core/http'
|
||||
import vpsConfig from '#config/vps'
|
||||
import UserError from '#exceptions/user_error'
|
||||
import projectService, { PROJECT_ACTIONS, type ProjectAction } from '#services/project_service'
|
||||
import { DEFAULT_NODE_COMMAND } from '#services/templates'
|
||||
import { actor } from '#services/audit'
|
||||
import { createProjectValidator, projectActionValidator } from '#validators/project'
|
||||
|
||||
export default class ProjectsController {
|
||||
async index() {
|
||||
return projectService.list()
|
||||
}
|
||||
|
||||
/**
|
||||
* Values used by the "new project" form.
|
||||
*/
|
||||
async options() {
|
||||
return {
|
||||
baseDomain: vpsConfig.baseDomain,
|
||||
categories: vpsConfig.projectCategories,
|
||||
srvRoot: vpsConfig.srvRoot,
|
||||
defaultNodeCommand: DEFAULT_NODE_COMMAND,
|
||||
}
|
||||
}
|
||||
|
||||
async show({ params }: HttpContext) {
|
||||
const project = await projectService.find(params.category, params.name)
|
||||
return projectService.details(project)
|
||||
}
|
||||
|
||||
async fetch({ params }: HttpContext) {
|
||||
const project = await projectService.find(params.category, params.name)
|
||||
return projectService.fetch(project)
|
||||
}
|
||||
|
||||
async action(ctx: HttpContext) {
|
||||
const action = ctx.params.action as ProjectAction
|
||||
if (!PROJECT_ACTIONS.includes(action)) throw new UserError('Action inconnue.', 404)
|
||||
|
||||
const { commit } = await ctx.request.validateUsing(projectActionValidator)
|
||||
const project = await projectService.find(ctx.params.category, ctx.params.name)
|
||||
const job = await projectService.runAction(project, action, { commit }, actor(ctx))
|
||||
return { jobId: job.id }
|
||||
}
|
||||
|
||||
async store(ctx: HttpContext) {
|
||||
const input = await ctx.request.validateUsing(createProjectValidator)
|
||||
const job = await projectService.create(input, actor(ctx))
|
||||
return { jobId: job.id }
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user