service.js 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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, userName) {
  21. if (!chatToken) {
  22. return "not_init";
  23. return;
  24. }
  25. messageList.push({ role: "user", content: message });
  26. const cuerpo = { messages: messageList, user: userName }
  27. const response = await fetch("/api/chat/completions", {
  28. method: "POST",
  29. headers: {
  30. "Content-Type": "application/json",
  31. "X-App-Token": chatToken
  32. },
  33. body: JSON.stringify(cuerpo)
  34. });
  35. if (!response.ok) {
  36. const errorData = await response.json().catch(() => ({ message: "Respuesta no válida del servidor." }));
  37. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  38. }
  39. const data = await response.json();
  40. const assistantResponse = data.response;
  41. if (assistantResponse) {
  42. messageList.push({ role: "assistant", content: assistantResponse });
  43. return { messageList, assistantResponse };
  44. } else {
  45. throw new Error("Respuesta vacía del asistente.");
  46. }
  47. }
  48. async function sendOrder(order) {
  49. try {
  50. const response = await fetch("/api/printer/order", {
  51. method: "POST",
  52. headers: {
  53. "Content-Type": "application/json",
  54. "X-App-Token": chatToken
  55. },
  56. body: JSON.stringify(order)
  57. });
  58. if (!response.ok) {
  59. const errorData = await response.json().catch(() => ({ message: "Respuesta no válida del servidor." }));
  60. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  61. }
  62. const data = await response.json();
  63. return data;
  64. } catch (error) {
  65. console.error("Error al enviar la orden:", error);
  66. throw error;
  67. }
  68. }
  69. async function getProducts(){
  70. const response = await fetch("/api/get_products");
  71. if (!response.ok) {
  72. const errorData = await response.json().catch(() => ({ message: "Respuesta no válida del servidor." }));
  73. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  74. }
  75. const data = await response.json();
  76. return data.products;
  77. }
  78. async function existsUser(userCode){
  79. const response = await fetch("/api/existsUser", {
  80. method: "POST",
  81. headers: {
  82. "Content-Type": "application/json",
  83. "X-App-Token": chatToken
  84. },
  85. body: JSON.stringify({
  86. user_code: userCode
  87. })
  88. });
  89. if (!response.ok) {
  90. const errorData = await response.json().catch(() => ({ message: "Respuesta no válida del servidor." }));
  91. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  92. }
  93. const data = await response.json();
  94. return data;
  95. }
  96. export { initializeChat, sendMessage, sendOrder, getProducts, existsUser };