30 lines
907 B
TypeScript
30 lines
907 B
TypeScript
import type { OpenClawConfig } from "openclaw/plugin-sdk";
|
|
import { resolveBlueBubblesAccount } from "./accounts.js";
|
|
|
|
export type BlueBubblesAccountResolveOpts = {
|
|
serverUrl?: string;
|
|
password?: string;
|
|
accountId?: string;
|
|
cfg?: OpenClawConfig;
|
|
};
|
|
|
|
export function resolveBlueBubblesServerAccount(params: BlueBubblesAccountResolveOpts): {
|
|
baseUrl: string;
|
|
password: string;
|
|
accountId: string;
|
|
} {
|
|
const account = resolveBlueBubblesAccount({
|
|
cfg: params.cfg ?? {},
|
|
accountId: params.accountId,
|
|
});
|
|
const baseUrl = params.serverUrl?.trim() || account.config.serverUrl?.trim();
|
|
const password = params.password?.trim() || account.config.password?.trim();
|
|
if (!baseUrl) {
|
|
throw new Error("BlueBubbles serverUrl is required");
|
|
}
|
|
if (!password) {
|
|
throw new Error("BlueBubbles password is required");
|
|
}
|
|
return { baseUrl, password, accountId: account.accountId };
|
|
}
|