wa_strapi
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

76 rindas
2.0 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. let id = chatsExist.id;
  41. await strapi.query("chats").update(
  42. { id },
  43. {
  44. session_key: sessionsId,
  45. }
  46. );
  47. }
  48. }
  49. var messages = await messageModel.getMessagebyId(
  50. client,
  51. result["DATA"][i]["id"]
  52. );
  53. if (messages["STATUS"] == 1) {
  54. for (var j = 0; j < messages["DATA"].length; j++) {
  55. await refreshMessage(
  56. messages["DATA"][j],
  57. chatsExist
  58. );
  59. }
  60. }
  61. }
  62. } else {
  63. throw { message: result["DATA"] };
  64. }
  65. }
  66. // console.log("done populating chats");
  67. } catch (e) {
  68. console.log("error", e.message || e);
  69. // return { STATUS: 0, DATA: e.message || e };
  70. }
  71. };
  72. module.exports = refreshChat;