wa_strapi
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

63 wiersze
1.7 KiB

  1. "use strict";
  2. const messageModel = require("../model/messageModel");
  3. const moment = require("moment");
  4. const refreshMessage = require("./refreshMessage");
  5. const refreshChat = async function (client, sessionsId) {
  6. try {
  7. if (client && sessionsId) {
  8. var chatId;
  9. var result = await messageModel.getAllChats(client);
  10. if (result["STATUS"] == 1) {
  11. for (var i = 0; i < result["DATA"].length; i++) {
  12. var chatsExist = await strapi.api["chats"].services[
  13. "chats"
  14. ].findOne({
  15. session_key: sessionsId,
  16. phoneNumber: result["DATA"][i]["id"].user,
  17. });
  18. if (!chatsExist) {
  19. await strapi.query("chats").create({
  20. session_key: sessionsId,
  21. name: result["DATA"][i]["name"],
  22. unreadCount: result["DATA"][i]["unreadCount"],
  23. timestamp: moment
  24. .unix(result["DATA"][i]["timestamp"])
  25. .toDate(),
  26. chatId: result["DATA"][i]["id"],
  27. phoneNumber: result["DATA"][i]["id"].user,
  28. });
  29. chatsExist = await strapi.api["chats"].services[
  30. "chats"
  31. ].findOne({
  32. session_key: sessionsId,
  33. phoneNumber: result["DATA"][i]["id"].user,
  34. });
  35. }
  36. var messages = await messageModel.getMessagebyId(
  37. client,
  38. result["DATA"][i]["id"]
  39. );
  40. if (messages["STATUS"] == 1) {
  41. for (var j = 0; j < messages["DATA"].length; j++) {
  42. await refreshMessage(
  43. messages["DATA"][j],
  44. chatsExist
  45. );
  46. }
  47. }
  48. }
  49. } else {
  50. throw { message: result["DATA"] };
  51. }
  52. }
  53. // console.log("done populating chats");
  54. } catch (e) {
  55. console.log("error", e.message || e);
  56. // return { STATUS: 0, DATA: e.message || e };
  57. }
  58. };
  59. module.exports = refreshChat;