Browse Source

feat: add API endpoints to trigger and toggle tasks

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
main
npmrun 1 month ago
parent
commit
5f8fc0dfc4
  1. 20
      server/api/scheduler/tasks/[id]/toggle.post.ts
  2. 11
      server/api/scheduler/tasks/[id]/trigger.post.ts

20
server/api/scheduler/tasks/[id]/toggle.post.ts

@ -0,0 +1,20 @@
import { toggleTask } from "../../../../service/scheduler";
import { reloadTask, removeTask } from "../../../../scheduler/engine";
export default defineWrappedResponseHandler(async (event) => {
const id = getRouterParam(event, "id");
if (!id) return R.throwError(400, "Missing id", null);
const body = await readBody<{ enabled: boolean }>(event);
const task = await toggleTask(id, body.enabled);
if (!task) return R.throwError(404, "Task not found", null);
if (task.enabled) {
reloadTask(id);
} else {
removeTask(id);
}
return R.success(task);
});

11
server/api/scheduler/tasks/[id]/trigger.post.ts

@ -0,0 +1,11 @@
import { triggerTask } from "../../../../scheduler/engine";
export default defineWrappedResponseHandler(async (event) => {
const id = getRouterParam(event, "id");
if (!id) return R.throwError(400, "Missing id", null);
// Fire and forget — trigger returns immediately, execution is async
triggerTask(id).catch(() => {});
return R.success({ triggered: true });
});
Loading…
Cancel
Save