40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
import { camelJob } from '../models/mappers.js';
|
|
import { createRunPlan, deleteRunPlan, listRunPlans, loadVisibleRunPlan, updateRunPlan } from '../models/runPlanModel.js';
|
|
import { executeRunPlan } from '../services/powershellRunner.js';
|
|
|
|
export function index(req, res) {
|
|
res.json(listRunPlans(req.user.id));
|
|
}
|
|
|
|
export function create(req, res) {
|
|
res.status(201).json(createRunPlan(req.body, req.user.id));
|
|
}
|
|
|
|
export function show(req, res) {
|
|
const runplan = loadVisibleRunPlan(req.params.id, req.user.id);
|
|
if (!runplan) return res.status(404).json({ error: 'RunPlan not found' });
|
|
res.json(runplan);
|
|
}
|
|
|
|
export function update(req, res) {
|
|
const runplan = updateRunPlan(req.params.id, req.body, req.user.id);
|
|
if (!runplan) return res.status(404).json({ error: 'RunPlan not found' });
|
|
res.json(runplan);
|
|
}
|
|
|
|
export function destroy(req, res) {
|
|
deleteRunPlan(req.params.id, req.user.id);
|
|
res.status(204).end();
|
|
}
|
|
|
|
export function execute(req, res) {
|
|
// Execution remains an API concern; Vue only requests a RunPlan launch.
|
|
const runplan = loadVisibleRunPlan(req.params.id, req.user.id);
|
|
if (!runplan) return res.status(404).json({ error: 'RunPlan not found' });
|
|
try {
|
|
res.status(202).json(camelJob(executeRunPlan(req.params.id, req.user.id)));
|
|
} catch (error) {
|
|
res.status(400).json({ error: error.message });
|
|
}
|
|
}
|