diff --git a/client/src/components/chat-messages-list/chat-message-list.component.jsx b/client/src/components/chat-messages-list/chat-message-list.component.jsx
index d6460a89d..cae48116f 100644
--- a/client/src/components/chat-messages-list/chat-message-list.component.jsx
+++ b/client/src/components/chat-messages-list/chat-message-list.component.jsx
@@ -1,5 +1,5 @@
import Icon from "@ant-design/icons";
-import { Tooltip } from "antd";
+import { Spin, Tooltip } from "antd";
import i18n from "i18next";
import moment from "moment";
import React, { useEffect, useRef } from "react";
@@ -12,6 +12,8 @@ import {
} from "react-virtualized";
import { DateTimeFormatter } from "../../utils/DateFormatter";
import "./chat-message-list.styles.scss";
+import { useState } from "react";
+import axios from "axios";
export default function ChatMessageListComponent({ messages }) {
const virtualizedListRef = useRef(null);
@@ -95,9 +97,7 @@ const MessageRender = (message) => {
key={idx}
style={{ display: "flex", justifyContent: "center" }}
>
-
-
-
+
))}
{message.text}
@@ -116,3 +116,21 @@ const StatusRender = (status) => {
return null;
}
};
+
+const ImageDisplay = ({ src }) => {
+ const [state, setstate] = useState({ loading: true, url: null });
+
+ useEffect(() => {
+ axios
+
+ .post("/sms/fetchmedia", { mediaUrl: src })
+ .then(({ data }) => setstate({ loading: false, url: data }));
+ }, [src]);
+
+ if (state.loading === true) return ;
+ return (
+
+
+
+ );
+};
diff --git a/package.json b/package.json
index e2896516b..e26dec551 100644
--- a/package.json
+++ b/package.json
@@ -53,7 +53,7 @@
"socket.io": "^4.6.1",
"ssh2-sftp-client": "^9.0.4",
"stripe": "^9.15.0",
- "twilio": "^4.8.0",
+ "twilio": "^4.13.0",
"uuid": "^9.0.0",
"xml2js": "^0.4.23",
"xmlbuilder2": "^3.0.2"
diff --git a/server.js b/server.js
index e30d4ec07..8787ebbe5 100644
--- a/server.js
+++ b/server.js
@@ -123,6 +123,13 @@ app.post(
twilio.webhook({ validate: process.env.NODE_ENV === "PRODUCTION" }),
smsStatus.status
);
+const smsFetchMedia = require("./server/sms/fetch-media");
+app.post(
+ "/sms/fetchmedia",
+ fb.validateFirebaseIdToken,
+ smsFetchMedia.fetchmedia
+);
+
app.post(
"/sms/markConversationRead",
fb.validateFirebaseIdToken,
diff --git a/server/sms/fetch-media.js b/server/sms/fetch-media.js
new file mode 100644
index 000000000..c21567c0e
--- /dev/null
+++ b/server/sms/fetch-media.js
@@ -0,0 +1,31 @@
+const path = require("path");
+require("dotenv").config({
+ path: path.resolve(
+ process.cwd(),
+ `.env.${process.env.NODE_ENV || "development"}`
+ ),
+});
+const twilio = require("twilio");
+const client = twilio(
+ process.env.TWILIO_AUTH_TOKEN,
+ process.env.TWILIO_AUTH_KEY
+);
+const logger = require("../utils/logger");
+
+exports.fetchmedia = async (req, res) => {
+ try {
+ const r = await client.request({
+ method: "get",
+ uri: req.body.mediaUrl, //|| "https://api.twilio.com/2010-04-01/Accounts/AC59171266556bbd507234b5fc6a23e4ee/Messages/MMa287a6e411c873e9177953e630f21df0/Media/ME18357bbec8c0092bfbc805aa8e6c6185",
+ });
+
+ res.send(r.headers.location);
+ } catch (error) {
+ console.log(error);
+ logger.log("sms-fetch-media-error", "ERROR", req.user?.email, null, {
+ // conversationid,
+ error: error.message,
+ });
+ res.sendStatus(500);
+ }
+};
diff --git a/yarn.lock b/yarn.lock
index d859830cb..a731b081f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4338,10 +4338,10 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
-twilio@^4.8.0:
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/twilio/-/twilio-4.10.0.tgz#4a0e744045e54934c5cf69033df8e3c5193268a3"
- integrity sha512-j6reVBUqwrGHBKnCIoL1hUDPl/Yw6EYVvkYLmFBpVQ74AGf/9BCKXnvlkAgIkwFXzZikpNuo0mqIY/k9oMiFsA==
+twilio@^4.13.0:
+ version "4.13.0"
+ resolved "https://registry.yarnpkg.com/twilio/-/twilio-4.13.0.tgz#6b8f9f14d4def821ca02abb2c561ed3e4dde7a4d"
+ integrity sha512-fecPGy2lXnULwle4iXcCH3rP5z4fgkirzp+rRIXsFi45+y3qjkY5DBZSzmYr5T4vUOzZ2djmODZJ2jpRfgIBSw==
dependencies:
axios "^0.26.1"
dayjs "^1.8.29"