|
- "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,
- };
|