30 lines
751 B
TypeScript
30 lines
751 B
TypeScript
import type { RoutineTrigger } from "@paperclipai/shared";
|
|
|
|
export type RoutineTriggerEditorDraft = {
|
|
label: string;
|
|
cronExpression: string;
|
|
signingMode: string;
|
|
replayWindowSec: string;
|
|
};
|
|
|
|
export function buildRoutineTriggerPatch(
|
|
trigger: RoutineTrigger,
|
|
draft: RoutineTriggerEditorDraft,
|
|
fallbackTimezone: string,
|
|
) {
|
|
const patch: Record<string, unknown> = {
|
|
label: draft.label.trim() || null,
|
|
};
|
|
|
|
if (trigger.kind === "schedule") {
|
|
patch.cronExpression = draft.cronExpression.trim();
|
|
patch.timezone = trigger.timezone ?? fallbackTimezone;
|
|
}
|
|
|
|
if (trigger.kind === "webhook") {
|
|
patch.signingMode = draft.signingMode;
|
|
patch.replayWindowSec = Number(draft.replayWindowSec || "300");
|
|
}
|
|
|
|
return patch;
|
|
}
|