mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 05:11:25 +00:00
refactor(gateway): share node event sessionKey parsing
This commit is contained in:
@@ -69,6 +69,21 @@ async function touchSessionStore(params: {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parseSessionKeyFromPayloadJSON(payloadJSON: string): string | null {
|
||||||
|
let payload: unknown;
|
||||||
|
try {
|
||||||
|
payload = JSON.parse(payloadJSON) as unknown;
|
||||||
|
} catch {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (typeof payload !== "object" || payload === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const obj = payload as Record<string, unknown>;
|
||||||
|
const sessionKey = typeof obj.sessionKey === "string" ? obj.sessionKey.trim() : "";
|
||||||
|
return sessionKey.length > 0 ? sessionKey : null;
|
||||||
|
}
|
||||||
|
|
||||||
export const handleNodeEvent = async (ctx: NodeEventContext, nodeId: string, evt: NodeEvent) => {
|
export const handleNodeEvent = async (ctx: NodeEventContext, nodeId: string, evt: NodeEvent) => {
|
||||||
switch (evt.event) {
|
switch (evt.event) {
|
||||||
case "voice.transcript": {
|
case "voice.transcript": {
|
||||||
@@ -187,15 +202,7 @@ export const handleNodeEvent = async (ctx: NodeEventContext, nodeId: string, evt
|
|||||||
if (!evt.payloadJSON) {
|
if (!evt.payloadJSON) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let payload: unknown;
|
const sessionKey = parseSessionKeyFromPayloadJSON(evt.payloadJSON);
|
||||||
try {
|
|
||||||
payload = JSON.parse(evt.payloadJSON) as unknown;
|
|
||||||
} catch {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const obj =
|
|
||||||
typeof payload === "object" && payload !== null ? (payload as Record<string, unknown>) : {};
|
|
||||||
const sessionKey = typeof obj.sessionKey === "string" ? obj.sessionKey.trim() : "";
|
|
||||||
if (!sessionKey) {
|
if (!sessionKey) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -206,15 +213,7 @@ export const handleNodeEvent = async (ctx: NodeEventContext, nodeId: string, evt
|
|||||||
if (!evt.payloadJSON) {
|
if (!evt.payloadJSON) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let payload: unknown;
|
const sessionKey = parseSessionKeyFromPayloadJSON(evt.payloadJSON);
|
||||||
try {
|
|
||||||
payload = JSON.parse(evt.payloadJSON) as unknown;
|
|
||||||
} catch {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const obj =
|
|
||||||
typeof payload === "object" && payload !== null ? (payload as Record<string, unknown>) : {};
|
|
||||||
const sessionKey = typeof obj.sessionKey === "string" ? obj.sessionKey.trim() : "";
|
|
||||||
if (!sessionKey) {
|
if (!sessionKey) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user