"use strict"; const messageModel = require("../model/messageModel"); const { parseMultipartData, sanitizeEntity } = require("strapi-utils"); const moment = require("moment"); const refreshChat = async function (client, sessionsId) { try { if (client && sessionsId) { var chatId; var result = await messageModel.getAllChats(client); 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) { 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, }); chatsExist = await strapi.api["chats"].services[ "chats" ].findOne({ session_key: sessionsId, phoneNumber: result["DATA"][i]["id"].user, }); } chatId = chatsExist.id; var messages = await messageModel.getMessagebyId( client, result["DATA"][i]["id"] ); if (messages["STATUS"] == 1) { for (var j = 0; j < messages["DATA"].length; j++) { var Exist = await strapi.api["message"].services[ "message" ].findOne({ messageId: messages["DATA"][j]["id"].id, }); if (!Exist) { // console.log(chatId); await strapi.query("message").create({ messageId: messages["DATA"][j]["id"].id, to: messages["DATA"][j]["to"], from: messages["DATA"][j]["from"], body: messages["DATA"][j]["body"], state: messages["DATA"][j]["fromMe"] ? "SENT" : "RECIEVED", isForwarded: messages["DATA"][j]["isForwarded"] == undefined ? false : messages["DATA"][j][ "isForwarded" ], chat_key: chatId, timestamp: moment .unix(messages["DATA"][j]["timestamp"]) .toDate(), }); } } } } } 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: refreshChat, };