|
- "use strict";
- const messageModel = require("../model/messageModel");
- const moment = require("moment");
- const refreshMessage = require("./refreshMessage");
-
- const refreshChat = async function (client, sessionsId) {
- try {
- if (client && sessionsId) {
- var chatId;
- var result = await messageModel.getAllChats(client);
- // console.log(result["DATA"]);
- if (result["STATUS"] == 1) {
- for (var i = 0; i < result["DATA"].length; i++) {
- var chatsExist = await strapi.api["chats"].services[
- "chats"
- ].findOne({
- session_key: sessionsId,
- phoneNumber: result["DATA"][i]["id"].user,
- });
- if (!chatsExist) {
- //check again with last active session
- chatsExist = await strapi.api["chats"].services[
- "chats"
- ].findOne({
- last_sessionId: client.info.me._serialized,
- phoneNumber: result["DATA"][i]["id"].user,
- });
- if (!chatsExist) {
- await strapi.query("chats").create({
- session_key: sessionsId,
- name: result["DATA"][i]["name"],
- unreadCount: result["DATA"][i]["unreadCount"],
- timestamp: moment
- .unix(result["DATA"][i]["timestamp"])
- .toDate(),
- chatId: result["DATA"][i]["id"],
- phoneNumber: result["DATA"][i]["id"].user,
- last_sessionId: client.info.me._serialized,
- });
- } else {
- console.log("updating old chat");
- let id = chatsExist.id;
- strapi.query("chats").update(
- { id },
- {
- session_key: sessionsId,
- }
- );
- }
- }
- var messages = await messageModel.getMessagebyId(
- client,
- result["DATA"][i]["id"]
- );
- if (messages["STATUS"] == 1) {
- for (var j = 0; j < messages["DATA"].length; j++) {
- await refreshMessage(
- messages["DATA"][j],
- chatsExist
- );
- }
- }
- }
- } else {
- throw { message: result["DATA"] };
- }
- }
-
- // console.log("done populating chats");
- } catch (e) {
- console.log("error", e.message || e);
- // return { STATUS: 0, DATA: e.message || e };
- }
- };
-
- module.exports = refreshChat;
|