90 lines
2.5 KiB
JavaScript
90 lines
2.5 KiB
JavaScript
const path = require("path");
|
|
require("dotenv").config({
|
|
path: path.resolve(
|
|
process.cwd(),
|
|
`.env.${process.env.NODE_ENV || "development"}`
|
|
),
|
|
});
|
|
|
|
const twilio = require("twilio");
|
|
const phone = require("phone");
|
|
const queries = require("../graphql-client/queries");
|
|
|
|
const client = twilio(
|
|
process.env.TWILIO_AUTH_TOKEN,
|
|
process.env.TWILIO_AUTH_KEY
|
|
);
|
|
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);
|
|
if (!!to && !!messagingServiceSid && !!body && !!conversationid) {
|
|
client.messages
|
|
.create({
|
|
body: body,
|
|
messagingServiceSid: messagingServiceSid,
|
|
to: phone(to)[0],
|
|
mediaUrl: selectedMedia.map((i) => i.src),
|
|
})
|
|
.then((message) => {
|
|
let newMessage = {
|
|
msid: message.sid,
|
|
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)
|
|
: [],
|
|
};
|
|
gqlClient
|
|
.request(queries.INSERT_MESSAGE, { msg: newMessage })
|
|
.then((r2) => {
|
|
//console.log("Responding GQL Message ID", JSON.stringify(r2));
|
|
res.sendStatus(200);
|
|
})
|
|
.catch((e2) => {
|
|
console.log("e2", e2);
|
|
//res.json({ success: false, message: e2 });
|
|
});
|
|
})
|
|
.catch((e1) => {
|
|
//res.json({ success: false, message: error });
|
|
console.log("e1", e1);
|
|
});
|
|
} else {
|
|
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 }],
|
|
// });
|