wa_strapi
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

77 Zeilen
2.1 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. // console.log(result["DATA"]);
  11. if (result["STATUS"] == 1) {
  12. for (var i = 0; i < result["DATA"].length; i++) {
  13. var chatsExist = await strapi.api["chats"].services[
  14. "chats"
  15. ].findOne({
  16. session_key: sessionsId,
  17. phoneNumber: result["DATA"][i]["id"].user,
  18. });
  19. if (!chatsExist) {
  20. //check again with last active session
  21. chatsExist = await strapi.api["chats"].services[
  22. "chats"
  23. ].findOne({
  24. last_sessionId: client.info.me._serialized,
  25. phoneNumber: result["DATA"][i]["id"].user,
  26. });
  27. if (!chatsExist) {
  28. await strapi.query("chats").create({
  29. session_key: sessionsId,
  30. name: result["DATA"][i]["name"],
  31. unreadCount: result["DATA"][i]["unreadCount"],
  32. timestamp: moment
  33. .unix(result["DATA"][i]["timestamp"])
  34. .toDate(),
  35. chatId: result["DATA"][i]["id"],
  36. phoneNumber: result["DATA"][i]["id"].user,
  37. last_sessionId: client.info.me._serialized,
  38. });
  39. } else {
  40. console.log("updating old chat");
  41. let id = chatsExist.id;
  42. strapi.query("chats").update(
  43. { id },
  44. {
  45. session_key: sessionsId,
  46. }
  47. );
  48. }
  49. }
  50. var messages = await messageModel.getMessagebyId(
  51. client,
  52. result["DATA"][i]["id"]
  53. );
  54. if (messages["STATUS"] == 1) {
  55. for (var j = 0; j < messages["DATA"].length; j++) {
  56. await refreshMessage(
  57. messages["DATA"][j],
  58. chatsExist
  59. );
  60. }
  61. }
  62. }
  63. } else {
  64. throw { message: result["DATA"] };
  65. }
  66. }
  67. // console.log("done populating chats");
  68. } catch (e) {
  69. console.log("error", e.message || e);
  70. // return { STATUS: 0, DATA: e.message || e };
  71. }
  72. };
  73. module.exports = refreshChat;