service.js 3.2 KB

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