conversationApi.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { API_BASE_URL } from "@/lib/config";
  2. export interface InitVisitorConversationPayload {
  3. visitorId: number;
  4. website?: string;
  5. referrer?: string;
  6. browser?: string;
  7. os?: string;
  8. language?: string;
  9. ipAddress?: string;
  10. }
  11. export interface InitVisitorConversationResult {
  12. conversation_id: number;
  13. status: string;
  14. }
  15. export async function initVisitorConversation(
  16. payload: InitVisitorConversationPayload
  17. ): Promise<InitVisitorConversationResult> {
  18. const res = await fetch(`${API_BASE_URL}/conversation/init`, {
  19. method: "POST",
  20. headers: { "Content-Type": "application/json" },
  21. body: JSON.stringify({
  22. visitor_id: payload.visitorId,
  23. website: payload.website,
  24. referrer: payload.referrer,
  25. browser: payload.browser,
  26. os: payload.os,
  27. language: payload.language,
  28. ip_address: payload.ipAddress,
  29. }),
  30. });
  31. if (!res.ok) {
  32. throw new Error("初始化对话失败");
  33. }
  34. const data = await res.json();
  35. return {
  36. conversation_id: data.conversation_id ?? 0,
  37. status: data.status ?? "open",
  38. };
  39. }