|
- "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 oldChats = await strapi.api["chats"].services["chats"].find({
- last_sessionId: client.info.me._serialized,
- });
- oldChats = oldChats.filter(
- (item) => Object.keys(item.session_key).length === 0
- );
- for (var i = 0; i < oldChats.length; i++) {
- var oldChatId = oldChats[i].id;
- // console.log(oldChats[i]);
- await strapi.query("chats").update(
- { id: oldChatId },
- {
- session_key: sessionsId,
- }
- );
- console.log(i);
- }
-
- var chatId;
- var result = await messageModel.getAllChats(client);
- if (result["STATUS"] == 1) {
- for (var i = 0; i < result["DATA"].length; i++) {
- console.log("next", i);
- var chatsExist = await strapi.api["chats"].services[
- "chats"
- ].findOne({
- session_key: sessionsId,
- phoneNumber: result["DATA"][i]["id"].user,
- });
- if (!chatsExist) {
- 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,
- });
- }
- 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"] };
- }
- }
- } catch (e) {
- console.log("error", e.message || e);
- // return { STATUS: 0, DATA: e.message || e };
- }
- };
-
- module.exports = refreshChat;
|