first commit

This commit is contained in:
Rutra committed 2026-10-12 14:25:22 +02:00
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 }
}
}