service.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // public/ts/service.ts
  2. var chatToken = null;
  3. async function initializeChat() {
  4. try {
  5. const response = await fetch("/api/chat/init-chat");
  6. if (!response.ok) {
  7. const errorData = await response.json().catch(() => ({ message: "Error desconocido al inicializar." }));
  8. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  9. }
  10. const data = await response.json();
  11. chatToken = data.chatToken;
  12. if (!chatToken) {
  13. throw new Error("No se pudo obtener el token de chat.");
  14. }
  15. return true;
  16. } catch (error) {
  17. console.error("Error al inicializar el chat:", error);
  18. }
  19. }
  20. async function sendMessage(message, messageList) {
  21. if (!chatToken) {
  22. return "not_init";
  23. return;
  24. }
  25. messageList.push({ role: "user", content: message });
  26. const response = await fetch("/api/chat/completions", {
  27. method: "POST",
  28. headers: {
  29. "Content-Type": "application/json",
  30. "X-App-Token": chatToken
  31. },
  32. body: JSON.stringify({ messages: messageList })
  33. });
  34. if (!response.ok) {
  35. const errorData = await response.json().catch(() => ({ message: "Respuesta no válida del servidor." }));
  36. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  37. }
  38. const data = await response.json();
  39. const assistantResponse = data.response;
  40. if (assistantResponse) {
  41. messageList.push({ role: "assistant", content: assistantResponse });
  42. return { messageList, assistantResponse };
  43. } else {
  44. throw new Error("Respuesta vacía del asistente.");
  45. }
  46. }
  47. async function sendOrder(order) {
  48. try {
  49. const response = await fetch("/api/printer/order", {
  50. method: "POST",
  51. headers: {
  52. "Content-Type": "application/json",
  53. "X-App-Token": chatToken
  54. },
  55. body: JSON.stringify(order)
  56. });
  57. if (!response.ok) {
  58. const errorData = await response.json().catch(() => ({ message: "Respuesta no válida del servidor." }));
  59. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  60. }
  61. const data = await response.json();
  62. return data;
  63. } catch (error) {
  64. console.error("Error al enviar la orden:", error);
  65. throw error;
  66. }
  67. }
  68. async function getProducts(){
  69. const response = await fetch("/api/get_products");
  70. if (!response.ok) {
  71. const errorData = await response.json().catch(() => ({ message: "Respuesta no válida del servidor." }));
  72. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  73. }
  74. const data = await response.json();
  75. return data.products;
  76. }
  77. export { initializeChat, sendMessage, sendOrder, getProducts };