IO-1269
This commit is contained in:
@@ -10,16 +10,29 @@ 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 logger = require("../utils/logger");
|
||||
exports.receive = (req, res) => {
|
||||
//Perform request validation
|
||||
console.log("[SMS Receive] Inbound Twilio Message.", req.body.SmsMessageSid);
|
||||
console.log("req.body", req.body);
|
||||
|
||||
logger.log("sms-inbound", "DEBUG", "api", null, {
|
||||
msid: req.body.SmsMessageSid,
|
||||
text: req.body.Body,
|
||||
image: !!req.body.MediaUrl0,
|
||||
image_path: generateMediaArray(req.body),
|
||||
});
|
||||
|
||||
if (
|
||||
!!!req.body ||
|
||||
!!!req.body.MessagingServiceSid ||
|
||||
!!!req.body.SmsMessageSid
|
||||
) {
|
||||
logger.log("sms-inbound-error", "ERROR", "api", null, {
|
||||
msid: req.body.SmsMessageSid,
|
||||
text: req.body.Body,
|
||||
image: !!req.body.MediaUrl0,
|
||||
image_path: generateMediaArray(req.body),
|
||||
type: "malformed-request",
|
||||
});
|
||||
res.status(400);
|
||||
res.json({ success: false, error: "Malformed Request" });
|
||||
} else {
|
||||
@@ -29,8 +42,6 @@ exports.receive = (req, res) => {
|
||||
phone: phone(req.body.From).phoneNumber,
|
||||
})
|
||||
.then((response) => {
|
||||
console.log("re", req.body);
|
||||
|
||||
let newMessage = {
|
||||
msid: req.body.SmsMessageSid,
|
||||
text: req.body.Body,
|
||||
@@ -55,10 +66,14 @@ exports.receive = (req, res) => {
|
||||
response.bodyshops[0].conversations[0].id;
|
||||
} else {
|
||||
//We should never get here.
|
||||
console.log(
|
||||
"Massive Error: Duplicate Phone Numbers for MSSID: " +
|
||||
req.body.MessagingServiceSid
|
||||
);
|
||||
logger.log("sms-inbound-error", "ERROR", "api", null, {
|
||||
msid: req.body.SmsMessageSid,
|
||||
text: req.body.Body,
|
||||
image: !!req.body.MediaUrl0,
|
||||
image_path: generateMediaArray(req.body),
|
||||
messagingServiceSid: req.body.MessagingServiceSid,
|
||||
type: "duplicate-phone",
|
||||
});
|
||||
}
|
||||
|
||||
client
|
||||
@@ -67,6 +82,9 @@ exports.receive = (req, res) => {
|
||||
conversationid: response.bodyshops[0].conversations[0].id,
|
||||
})
|
||||
.then((r2) => {
|
||||
logger.log("sms-inbound-success", "DEBUG", "api", null, {
|
||||
newMessage,
|
||||
});
|
||||
res.status(200).send("");
|
||||
|
||||
const arrayOfAllUserFcmTokens =
|
||||
@@ -109,7 +127,15 @@ exports.receive = (req, res) => {
|
||||
// });
|
||||
})
|
||||
.catch((e2) => {
|
||||
console.log("e2", e2);
|
||||
logger.log("sms-inbound-error", "ERROR", "api", null, {
|
||||
msid: req.body.SmsMessageSid,
|
||||
text: req.body.Body,
|
||||
image: !!req.body.MediaUrl0,
|
||||
image_path: generateMediaArray(req.body),
|
||||
messagingServiceSid: req.body.MessagingServiceSid,
|
||||
error: e2,
|
||||
});
|
||||
|
||||
res.sendStatus(500).json(e2);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ require("dotenv").config({
|
||||
const twilio = require("twilio");
|
||||
const { phone } = require("phone");
|
||||
const queries = require("../graphql-client/queries");
|
||||
|
||||
const logger = require("../utils/logger");
|
||||
const client = twilio(
|
||||
process.env.TWILIO_AUTH_TOKEN,
|
||||
process.env.TWILIO_AUTH_KEY
|
||||
@@ -19,9 +19,21 @@ const gqlClient = require("../graphql-client/graphql-client").client;
|
||||
exports.send = (req, res) => {
|
||||
const { to, messagingServiceSid, body, conversationid, selectedMedia } =
|
||||
req.body;
|
||||
console.log("[Sending Sms] " + conversationid + " | " + body);
|
||||
|
||||
logger.log("sms-outbound", "DEBUG", req.user.email, null, {
|
||||
messagingServiceSid: messagingServiceSid,
|
||||
to: phone(to).phoneNumber,
|
||||
mediaUrl: selectedMedia.map((i) => i.src),
|
||||
text: body,
|
||||
conversationid,
|
||||
isoutbound: true,
|
||||
userid: req.user.email,
|
||||
image: req.body.selectedMedia.length > 0,
|
||||
image_path:
|
||||
req.body.selectedMedia.length > 0 ? selectedMedia.map((i) => i.src) : [],
|
||||
});
|
||||
|
||||
if (!!to && !!messagingServiceSid && !!body && !!conversationid) {
|
||||
console.log(phone(to));
|
||||
client.messages
|
||||
.create({
|
||||
body: body,
|
||||
@@ -46,40 +58,47 @@ exports.send = (req, res) => {
|
||||
.request(queries.INSERT_MESSAGE, { msg: newMessage })
|
||||
.then((r2) => {
|
||||
//console.log("Responding GQL Message ID", JSON.stringify(r2));
|
||||
logger.log("sms-outbound-success", "DEBUG", req.user.email, null, {
|
||||
msid: message.sid,
|
||||
conversationid,
|
||||
});
|
||||
|
||||
res.sendStatus(200);
|
||||
})
|
||||
.catch((e2) => {
|
||||
console.log("e2", e2);
|
||||
logger.log("sms-outbound-error", "ERROR", req.user.email, null, {
|
||||
msid: message.sid,
|
||||
conversationid,
|
||||
error: e2,
|
||||
});
|
||||
|
||||
//res.json({ success: false, message: e2 });
|
||||
});
|
||||
})
|
||||
.catch((e1) => {
|
||||
//res.json({ success: false, message: error });
|
||||
console.log("e1", e1);
|
||||
logger.log("sms-outbound-error", "ERROR", req.user.email, null, {
|
||||
conversationid,
|
||||
error: e1,
|
||||
});
|
||||
});
|
||||
} else {
|
||||
logger.log("sms-outbound-error", "ERROR", req.user.email, null, {
|
||||
type: "missing-parameters",
|
||||
messagingServiceSid: messagingServiceSid,
|
||||
to: phone(to).phoneNumber,
|
||||
text: body,
|
||||
conversationid,
|
||||
isoutbound: true,
|
||||
userid: req.user.email,
|
||||
image: req.body.selectedMedia.length > 0,
|
||||
image_path:
|
||||
req.body.selectedMedia.length > 0
|
||||
? selectedMedia.map((i) => i.src)
|
||||
: [],
|
||||
});
|
||||
res
|
||||
.status(400)
|
||||
.json({ success: false, message: "Missing required parameter(s)." });
|
||||
}
|
||||
};
|
||||
|
||||
// //Image
|
||||
// acc.push({
|
||||
// src: `${process.env.REACT_APP_CLOUDINARY_ENDPOINT}/${DetermineFileType(
|
||||
// value.type
|
||||
// )}/upload/${value.key}`,
|
||||
// thumbnail: `${
|
||||
// process.env.REACT_APP_CLOUDINARY_ENDPOINT
|
||||
// }/${DetermineFileType(value.type)}/upload/${
|
||||
// process.env.REACT_APP_CLOUDINARY_THUMB_TRANSFORMATIONS
|
||||
// }/${value.key}`,
|
||||
// thumbnailHeight: 225,
|
||||
// thumbnailWidth: 225,
|
||||
// isSelected: false,
|
||||
// key: value.key,
|
||||
// extension: value.extension,
|
||||
// id: value.id,
|
||||
// type: value.type,
|
||||
// tags: [{ value: value.type, title: value.type }],
|
||||
// });
|
||||
|
||||
@@ -9,6 +9,7 @@ require("dotenv").config({
|
||||
const client = require("../graphql-client/graphql-client").client;
|
||||
const queries = require("../graphql-client/queries");
|
||||
const { phone } = require("phone");
|
||||
const logger = require("../utils/logger");
|
||||
|
||||
exports.status = (req, res) => {
|
||||
const { SmsSid, SmsStatus } = req.body;
|
||||
@@ -18,10 +19,17 @@ exports.status = (req, res) => {
|
||||
fields: { status: SmsStatus },
|
||||
})
|
||||
.then((response) => {
|
||||
console.log("Message Updated", JSON.stringify(response));
|
||||
logger.log("sms-status-update", "DEBUG", "api", null, {
|
||||
msid: SmsSid,
|
||||
fields: { status: SmsStatus },
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log("Error updating message status", error);
|
||||
logger.log("sms-status-update-error", "ERROR", "api", null, {
|
||||
msid: SmsSid,
|
||||
fields: { status: SmsStatus },
|
||||
error,
|
||||
});
|
||||
});
|
||||
res.sendStatus(200);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user