Cron: normalize cron.add inputs + align channels (#256)
* fix: harden cron add and align channels * fix: keep cron tool id params --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
This commit is contained in:
@@ -17,6 +17,10 @@ import {
|
||||
validateWakeParams,
|
||||
} from "../protocol/index.js";
|
||||
import type { GatewayRequestHandlers } from "./types.js";
|
||||
import {
|
||||
normalizeCronJobCreate,
|
||||
normalizeCronJobPatch,
|
||||
} from "../../cron/normalize.js";
|
||||
|
||||
export const cronHandlers: GatewayRequestHandlers = {
|
||||
wake: ({ params, respond, context }) => {
|
||||
@@ -72,7 +76,8 @@ export const cronHandlers: GatewayRequestHandlers = {
|
||||
respond(true, status, undefined);
|
||||
},
|
||||
"cron.add": async ({ params, respond, context }) => {
|
||||
if (!validateCronAddParams(params)) {
|
||||
const normalized = normalizeCronJobCreate(params) ?? params;
|
||||
if (!validateCronAddParams(normalized)) {
|
||||
respond(
|
||||
false,
|
||||
undefined,
|
||||
@@ -83,11 +88,20 @@ export const cronHandlers: GatewayRequestHandlers = {
|
||||
);
|
||||
return;
|
||||
}
|
||||
const job = await context.cron.add(params as unknown as CronJobCreate);
|
||||
const job = await context.cron.add(
|
||||
normalized as unknown as CronJobCreate,
|
||||
);
|
||||
respond(true, job, undefined);
|
||||
},
|
||||
"cron.update": async ({ params, respond, context }) => {
|
||||
if (!validateCronUpdateParams(params)) {
|
||||
const normalizedPatch = normalizeCronJobPatch(
|
||||
(params as { patch?: unknown } | null)?.patch,
|
||||
);
|
||||
const candidate =
|
||||
normalizedPatch && typeof params === "object" && params !== null
|
||||
? { ...(params as Record<string, unknown>), patch: normalizedPatch }
|
||||
: params;
|
||||
if (!validateCronUpdateParams(candidate)) {
|
||||
respond(
|
||||
false,
|
||||
undefined,
|
||||
@@ -98,7 +112,7 @@ export const cronHandlers: GatewayRequestHandlers = {
|
||||
);
|
||||
return;
|
||||
}
|
||||
const p = params as {
|
||||
const p = candidate as {
|
||||
id: string;
|
||||
patch: Record<string, unknown>;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user