Files
openmaic/OpenMAIC/lib/media/probe-auth.ts
2026-08-16 14:58:47 +08:00

35 lines
934 B
TypeScript

type ConnectivityResult = {
success: boolean;
message: string;
};
interface ProbeAuthOptions {
providerName: string;
request: () => Promise<Response>;
}
export async function probeAuth({
providerName,
request,
}: ProbeAuthOptions): Promise<ConnectivityResult> {
try {
const response = await request();
if (response.status >= 300 && response.status < 400) {
return {
success: false,
message: `${providerName} connectivity error: Redirects are not allowed`,
};
}
if (response.status === 401 || response.status === 403) {
const text = await response.text();
return {
success: false,
message: `${providerName} auth failed (${response.status}): ${text}`,
};
}
return { success: true, message: `Connected to ${providerName}` };
} catch (err) {
return { success: false, message: `${providerName} connectivity error: ${err}` };
}
}