mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 09:41:11 +00:00
refactor: dedupe webhook view mappers
This commit is contained in:
@@ -230,6 +230,13 @@ function optionalField<TKey extends string, TValue>(
|
||||
return value !== undefined ? ({ [key]: value } as Record<TKey, TValue>) : {};
|
||||
}
|
||||
|
||||
function optionalTruthyStringField<TKey extends string>(
|
||||
key: TKey,
|
||||
value: string | undefined,
|
||||
): Partial<Record<TKey, string>> {
|
||||
return value ? ({ [key]: value } as Record<TKey, string>) : {};
|
||||
}
|
||||
|
||||
function toFlowView(flow: {
|
||||
flowId: string;
|
||||
syncMode: "task_mirrored" | "managed";
|
||||
@@ -251,14 +258,14 @@ function toFlowView(flow: {
|
||||
return {
|
||||
flowId: flow.flowId,
|
||||
syncMode: flow.syncMode,
|
||||
...(flow.controllerId ? { controllerId: flow.controllerId } : {}),
|
||||
...optionalTruthyStringField("controllerId", flow.controllerId),
|
||||
revision: flow.revision,
|
||||
status: flow.status,
|
||||
notifyPolicy: flow.notifyPolicy,
|
||||
goal: flow.goal,
|
||||
...(flow.currentStep ? { currentStep: flow.currentStep } : {}),
|
||||
...(flow.blockedTaskId ? { blockedTaskId: flow.blockedTaskId } : {}),
|
||||
...(flow.blockedSummary ? { blockedSummary: flow.blockedSummary } : {}),
|
||||
...optionalTruthyStringField("currentStep", flow.currentStep),
|
||||
...optionalTruthyStringField("blockedTaskId", flow.blockedTaskId),
|
||||
...optionalTruthyStringField("blockedSummary", flow.blockedSummary),
|
||||
...optionalField("stateJson", flow.stateJson),
|
||||
...optionalField("waitJson", flow.waitJson),
|
||||
...optionalField("cancelRequestedAt", flow.cancelRequestedAt),
|
||||
@@ -296,14 +303,14 @@ function toTaskView(task: {
|
||||
return {
|
||||
taskId: task.taskId,
|
||||
runtime: task.runtime,
|
||||
...(task.sourceId ? { sourceId: task.sourceId } : {}),
|
||||
...optionalTruthyStringField("sourceId", task.sourceId),
|
||||
scopeKind: task.scopeKind,
|
||||
...(task.childSessionKey ? { childSessionKey: task.childSessionKey } : {}),
|
||||
...(task.parentFlowId ? { parentFlowId: task.parentFlowId } : {}),
|
||||
...(task.parentTaskId ? { parentTaskId: task.parentTaskId } : {}),
|
||||
...(task.agentId ? { agentId: task.agentId } : {}),
|
||||
...(task.runId ? { runId: task.runId } : {}),
|
||||
...(task.label ? { label: task.label } : {}),
|
||||
...optionalTruthyStringField("childSessionKey", task.childSessionKey),
|
||||
...optionalTruthyStringField("parentFlowId", task.parentFlowId),
|
||||
...optionalTruthyStringField("parentTaskId", task.parentTaskId),
|
||||
...optionalTruthyStringField("agentId", task.agentId),
|
||||
...optionalTruthyStringField("runId", task.runId),
|
||||
...optionalTruthyStringField("label", task.label),
|
||||
task: task.task,
|
||||
status: task.status,
|
||||
deliveryStatus: task.deliveryStatus,
|
||||
@@ -313,10 +320,10 @@ function toTaskView(task: {
|
||||
...optionalField("endedAt", task.endedAt),
|
||||
...optionalField("lastEventAt", task.lastEventAt),
|
||||
...optionalField("cleanupAfter", task.cleanupAfter),
|
||||
...(task.error ? { error: task.error } : {}),
|
||||
...(task.progressSummary ? { progressSummary: task.progressSummary } : {}),
|
||||
...(task.terminalSummary ? { terminalSummary: task.terminalSummary } : {}),
|
||||
...(task.terminalOutcome ? { terminalOutcome: task.terminalOutcome } : {}),
|
||||
...optionalTruthyStringField("error", task.error),
|
||||
...optionalTruthyStringField("progressSummary", task.progressSummary),
|
||||
...optionalTruthyStringField("terminalSummary", task.terminalSummary),
|
||||
...optionalTruthyStringField("terminalOutcome", task.terminalOutcome),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user