"use server"; import { revalidatePath } from "next/cache"; import { requireSession } from "@/lib/session"; import { apiFetch, ApiError } from "@/lib/api"; import type { WebrtcProxyConfig } from "@/lib/platform-types"; function extractErrorMessage(err: unknown): string { if (err instanceof ApiError) { try { const parsed = JSON.parse(err.message); if (Array.isArray(parsed.message)) return parsed.message.join(" "); if (typeof parsed.message === "string") return parsed.message; } catch { // corpo não era JSON } return err.message || "Falha inesperada na API."; } return "Falha inesperada. Tente novamente."; } export async function updateWebrtcProxy( url: string, ): Promise<{ ok: true; config: WebrtcProxyConfig } | { ok: false; error: string }> { const session = await requireSession(); try { const config = await apiFetch("/platform/webrtc-proxy", session.accessToken, { method: "PUT", body: JSON.stringify({ url }), }); revalidatePath("/platform/infraestrutura/softphone"); return { ok: true, config }; } catch (err) { return { ok: false, error: extractErrorMessage(err) }; } }