service.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. console.log(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. export { initializeChat, sendMessage, sendOrder, getProducts };