Initial
This commit is contained in:
39
server/controllers/runPlanController.js
Normal file
39
server/controllers/runPlanController.js
Normal file
@@ -0,0 +1,39 @@
|
||||
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 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user