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 } = req.body; console.log("[Sending Sms] " + conversationid + " | " + body); if (!!to && !!messagingServiceSid && !!body && !!conversationid) { client.messages .create({ body: body, messagingServiceSid: messagingServiceSid, to: phone(to)[0], }) .then((message) => { let newMessage = { msid: message.sid, text: body, conversationid, isoutbound: true, }; 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)." }); } };