mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-19 05:50:47 +00:00
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { createPatchedAccountSetupAdapter, DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/setup";
|
|
|
|
const channel = "googlechat" as const;
|
|
|
|
export const googlechatSetupAdapter = createPatchedAccountSetupAdapter({
|
|
channelKey: channel,
|
|
validateInput: ({ accountId, input }) => {
|
|
if (input.useEnv && accountId !== DEFAULT_ACCOUNT_ID) {
|
|
return "GOOGLE_CHAT_SERVICE_ACCOUNT env vars can only be used for the default account.";
|
|
}
|
|
if (!input.useEnv && !input.token && !input.tokenFile) {
|
|
return "Google Chat requires --token (service account JSON) or --token-file.";
|
|
}
|
|
return null;
|
|
},
|
|
buildPatch: (input) => {
|
|
const patch = input.useEnv
|
|
? {}
|
|
: input.tokenFile
|
|
? { serviceAccountFile: input.tokenFile }
|
|
: input.token
|
|
? { serviceAccount: input.token }
|
|
: {};
|
|
const audienceType = input.audienceType?.trim();
|
|
const audience = input.audience?.trim();
|
|
const webhookPath = input.webhookPath?.trim();
|
|
const webhookUrl = input.webhookUrl?.trim();
|
|
return {
|
|
...patch,
|
|
...(audienceType ? { audienceType } : {}),
|
|
...(audience ? { audience } : {}),
|
|
...(webhookPath ? { webhookPath } : {}),
|
|
...(webhookUrl ? { webhookUrl } : {}),
|
|
};
|
|
},
|
|
});
|