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 }], // });