mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 19:04:31 +00:00
refactor(msteams): share credential prompt
This commit is contained in:
@@ -63,6 +63,32 @@ function looksLikeGuid(value: string): boolean {
|
|||||||
return /^[0-9a-fA-F-]{16,}$/.test(value);
|
return /^[0-9a-fA-F-]{16,}$/.test(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function promptMSTeamsCredentials(prompter: WizardPrompter): Promise<{
|
||||||
|
appId: string;
|
||||||
|
appPassword: string;
|
||||||
|
tenantId: string;
|
||||||
|
}> {
|
||||||
|
const appId = String(
|
||||||
|
await prompter.text({
|
||||||
|
message: "Enter MS Teams App ID",
|
||||||
|
validate: (value) => (value?.trim() ? undefined : "Required"),
|
||||||
|
}),
|
||||||
|
).trim();
|
||||||
|
const appPassword = String(
|
||||||
|
await prompter.text({
|
||||||
|
message: "Enter MS Teams App Password",
|
||||||
|
validate: (value) => (value?.trim() ? undefined : "Required"),
|
||||||
|
}),
|
||||||
|
).trim();
|
||||||
|
const tenantId = String(
|
||||||
|
await prompter.text({
|
||||||
|
message: "Enter MS Teams Tenant ID",
|
||||||
|
validate: (value) => (value?.trim() ? undefined : "Required"),
|
||||||
|
}),
|
||||||
|
).trim();
|
||||||
|
return { appId, appPassword, tenantId };
|
||||||
|
}
|
||||||
|
|
||||||
async function promptMSTeamsAllowFrom(params: {
|
async function promptMSTeamsAllowFrom(params: {
|
||||||
cfg: OpenClawConfig;
|
cfg: OpenClawConfig;
|
||||||
prompter: WizardPrompter;
|
prompter: WizardPrompter;
|
||||||
@@ -251,24 +277,7 @@ export const msteamsOnboardingAdapter: ChannelOnboardingAdapter = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
appId = String(
|
({ appId, appPassword, tenantId } = await promptMSTeamsCredentials(prompter));
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams App ID",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
appPassword = String(
|
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams App Password",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
tenantId = String(
|
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams Tenant ID",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
}
|
}
|
||||||
} else if (hasConfigCreds) {
|
} else if (hasConfigCreds) {
|
||||||
const keep = await prompter.confirm({
|
const keep = await prompter.confirm({
|
||||||
@@ -276,44 +285,10 @@ export const msteamsOnboardingAdapter: ChannelOnboardingAdapter = {
|
|||||||
initialValue: true,
|
initialValue: true,
|
||||||
});
|
});
|
||||||
if (!keep) {
|
if (!keep) {
|
||||||
appId = String(
|
({ appId, appPassword, tenantId } = await promptMSTeamsCredentials(prompter));
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams App ID",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
appPassword = String(
|
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams App Password",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
tenantId = String(
|
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams Tenant ID",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
appId = String(
|
({ appId, appPassword, tenantId } = await promptMSTeamsCredentials(prompter));
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams App ID",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
appPassword = String(
|
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams App Password",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
tenantId = String(
|
|
||||||
await prompter.text({
|
|
||||||
message: "Enter MS Teams Tenant ID",
|
|
||||||
validate: (value) => (value?.trim() ? undefined : "Required"),
|
|
||||||
}),
|
|
||||||
).trim();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (appId && appPassword && tenantId) {
|
if (appId && appPassword && tenantId) {
|
||||||
|
|||||||
Reference in New Issue
Block a user