IO-1551 Refactor messaging.
This commit is contained in:
@@ -9,7 +9,7 @@ require("dotenv").config({
|
||||
const client = require("../graphql-client/graphql-client").client;
|
||||
const queries = require("../graphql-client/queries");
|
||||
const { phone } = require("phone");
|
||||
const admin = require("../firebase/firebase-handler").admin;
|
||||
const { admin } = require("../firebase/firebase-handler");
|
||||
const logger = require("../utils/logger");
|
||||
exports.receive = async (req, res) => {
|
||||
//Perform request validation
|
||||
@@ -78,21 +78,43 @@ exports.receive = async (req, res) => {
|
||||
});
|
||||
}
|
||||
try {
|
||||
let insertresp;
|
||||
if (response.bodyshops[0].conversations[0]) {
|
||||
const r3 = await client.request(queries.INSERT_MESSAGE, {
|
||||
insertresp = await client.request(queries.INSERT_MESSAGE, {
|
||||
msg: newMessage,
|
||||
conversationid:
|
||||
response.bodyshops[0].conversations[0] &&
|
||||
response.bodyshops[0].conversations[0].id,
|
||||
});
|
||||
} else {
|
||||
const r2 = await client.request(queries.RECEIVE_MESSAGE, {
|
||||
insertresp = await client.request(queries.RECEIVE_MESSAGE, {
|
||||
msg: newMessage,
|
||||
});
|
||||
}
|
||||
const message = insertresp.insert_messages.returning[0];
|
||||
const data = {
|
||||
type: "messaging-inbound",
|
||||
conversationid: message.conversationid || "",
|
||||
text: message.text || "",
|
||||
image_path: message.image_path || "",
|
||||
image: (message.image && message.image.toString()) || "",
|
||||
messageid: message.id || "",
|
||||
phone_num: message.conversation.phone_num || "",
|
||||
};
|
||||
|
||||
const fcmresp = await admin.messaging().send({
|
||||
topic: `${message.conversation.bodyshop.imexshopid}-messaging`,
|
||||
notification: {
|
||||
title: `ImEX Online Message - ${data.phone_num}`,
|
||||
body: message.image_path ? `Image ${message.text}` : message.text,
|
||||
imageUrl: "https://thinkimex.com/img/logo512.png",
|
||||
},
|
||||
data,
|
||||
});
|
||||
|
||||
logger.log("sms-inbound-success", "DEBUG", "api", null, {
|
||||
newMessage,
|
||||
fcmresp,
|
||||
});
|
||||
res.status(200).send("");
|
||||
} catch (e2) {
|
||||
|
||||
@@ -10,6 +10,7 @@ const client = require("../graphql-client/graphql-client").client;
|
||||
const queries = require("../graphql-client/queries");
|
||||
const { phone } = require("phone");
|
||||
const logger = require("../utils/logger");
|
||||
const { admin } = require("../firebase/firebase-handler");
|
||||
|
||||
exports.status = (req, res) => {
|
||||
const { SmsSid, SmsStatus } = req.body;
|
||||
@@ -34,6 +35,23 @@ exports.status = (req, res) => {
|
||||
res.sendStatus(200);
|
||||
};
|
||||
|
||||
exports.markConversationRead = async (req, res) => {
|
||||
const { conversationid, imexshopid } = req.body;
|
||||
admin.messaging().send({
|
||||
topic: `${imexshopid}-messaging`,
|
||||
// notification: {
|
||||
// title: `ImEX Online Message - ${data.phone_num}`,
|
||||
// body: message.image_path ? `Image ${message.text}` : message.text,
|
||||
// imageUrl: "https://thinkimex.com/img/logo512.png",
|
||||
// },
|
||||
data: {
|
||||
type: "messaging-mark-conversation-read",
|
||||
conversationid: conversationid || "",
|
||||
},
|
||||
});
|
||||
res.send(200);
|
||||
};
|
||||
|
||||
// Inbound Sample
|
||||
// {
|
||||
// "SmsSid": "SM5205ea340e06437799d9345e7283457c",
|
||||
|
||||
Reference in New Issue
Block a user