diff --git a/backend/src/controllers/ContactController.js b/backend/src/controllers/ContactController.js
index e6bfd0d..2fc503a 100644
--- a/backend/src/controllers/ContactController.js
+++ b/backend/src/controllers/ContactController.js
@@ -41,13 +41,23 @@ exports.store = async (req, res) => {
const io = getIO();
const newContact = req.body;
- const result = await wbot.isRegisteredUser(`${newContact.number}@c.us`);
+ let isValidNumber;
- if (!result) {
+ try {
+ isValidNumber = await wbot.isRegisteredUser(`${newContact.number}@c.us`);
+ } catch (err) {
+ console.log("Could not check whatsapp contact. Is session details valid?");
+ return res.status(500).json({
+ error: "Could not check whatsapp contact. Check connection page.",
+ });
+ }
+
+ if (!isValidNumber) {
return res
.status(400)
.json({ error: "The suplied number is not a valid Whatsapp number" });
}
+
const profilePicUrl = await wbot.getProfilePicUrl(
`${newContact.number}@c.us`
);
diff --git a/backend/src/controllers/MessageController.js b/backend/src/controllers/MessageController.js
index 49bcf68..62d9afc 100644
--- a/backend/src/controllers/MessageController.js
+++ b/backend/src/controllers/MessageController.js
@@ -125,51 +125,62 @@ exports.store = async (req, res, next) => {
],
});
- if (media) {
- const newMedia = MessageMedia.fromFilePath(req.file.path);
+ try {
+ if (media) {
+ const newMedia = MessageMedia.fromFilePath(req.file.path);
- message.mediaUrl = req.file.filename;
- if (newMedia.mimetype) {
- message.mediaType = newMedia.mimetype.split("/")[0];
+ message.mediaUrl = req.file.filename;
+ if (newMedia.mimetype) {
+ message.mediaType = newMedia.mimetype.split("/")[0];
+ } else {
+ message.mediaType = "other";
+ }
+
+ sentMessage = await wbot.sendMessage(
+ `${ticket.contact.number}@c.us`,
+ newMedia
+ );
+
+ await ticket.update({ lastMessage: message.mediaUrl });
} else {
- message.mediaType = "other";
+ sentMessage = await wbot.sendMessage(
+ `${ticket.contact.number}@c.us`,
+ message.body
+ );
+ await ticket.update({ lastMessage: message.body });
}
-
- sentMessage = await wbot.sendMessage(
- `${ticket.contact.number}@c.us`,
- newMedia
+ } catch (err) {
+ console.log(
+ "Could not create whatsapp message. Is session details valid? "
);
-
- await ticket.update({ lastMessage: message.mediaUrl });
- } else {
- sentMessage = await wbot.sendMessage(
- `${ticket.contact.number}@c.us`,
- message.body
- );
- await ticket.update({ lastMessage: message.body });
}
- message.id = sentMessage.id.id;
+ if (sentMessage) {
+ message.id = sentMessage.id.id;
+ const newMessage = await ticket.createMessage(message);
- const newMessage = await ticket.createMessage(message);
+ const serialziedMessage = {
+ ...newMessage.dataValues,
+ mediaUrl: `${
+ message.mediaUrl
+ ? `${process.env.BACKEND_URL}:${process.env.PROXY_PORT}/public/${message.mediaUrl}`
+ : ""
+ }`,
+ };
- const serialziedMessage = {
- ...newMessage.dataValues,
- mediaUrl: `${
- message.mediaUrl
- ? `${process.env.BACKEND_URL}:${process.env.PROXY_PORT}/public/${message.mediaUrl}`
- : ""
- }`,
- };
+ io.to(ticketId).to("notification").emit("appMessage", {
+ action: "create",
+ message: serialziedMessage,
+ ticket: ticket,
+ contact: ticket.contact,
+ });
- io.to(ticketId).to("notification").emit("appMessage", {
- action: "create",
- message: serialziedMessage,
- ticket: ticket,
- contact: ticket.contact,
- });
+ await setMessagesAsRead(ticket);
- await setMessagesAsRead(ticket);
+ return res.json({ newMessage, ticket });
+ }
- return res.json({ newMessage, ticket });
+ return res
+ .status(500)
+ .json({ error: "Cannot sent whatsapp message. Check connection page." });
};
diff --git a/frontend/src/components/ContactModal/index.js b/frontend/src/components/ContactModal/index.js
index 695f0f9..1270e71 100644
--- a/frontend/src/components/ContactModal/index.js
+++ b/frontend/src/components/ContactModal/index.js
@@ -86,7 +86,8 @@ const ContactModal = ({ open, onClose, contactId }) => {
await api.post("/contacts", values);
}
} catch (err) {
- alert(err);
+ alert(err.response.data.error);
+ console.log(err);
}
handleClose();
};
diff --git a/frontend/src/components/MessageInput/index.js b/frontend/src/components/MessageInput/index.js
index 09d3a2b..14d3373 100644
--- a/frontend/src/components/MessageInput/index.js
+++ b/frontend/src/components/MessageInput/index.js
@@ -163,8 +163,8 @@ const MessageInput = () => {
try {
await api.post(`/messages/${ticketId}`, formData);
} catch (err) {
+ alert(err.response.data.error);
console.log(err);
- alert(err);
}
setLoading(false);
setMedia(mediaInitialState);
@@ -182,7 +182,8 @@ const MessageInput = () => {
try {
await api.post(`/messages/${ticketId}`, message);
} catch (err) {
- alert(err);
+ alert(err.response.data.error);
+ console.log(err);
}
setInputMessage("");
setShowEmoji(false);
@@ -217,20 +218,19 @@ const MessageInput = () => {
}
const formData = new FormData();
const filename = `${new Date().getTime()}.mp3`;
- console.log(blob);
formData.append("media", blob, filename);
formData.append("body", filename);
formData.append("fromMe", true);
try {
await api.post(`/messages/${ticketId}`, formData);
} catch (err) {
+ alert(err.response.data.error);
console.log(err);
- alert(err);
}
setRecording(false);
setLoading(false);
})
- .catch(e => console.log(e));
+ .catch(err => console.log(err));
};
const handleCancelAudio = () => {
diff --git a/frontend/src/routes/Route.js b/frontend/src/routes/Route.js
index abaa42f..38fcd06 100644
--- a/frontend/src/routes/Route.js
+++ b/frontend/src/routes/Route.js
@@ -32,11 +32,7 @@ const RouteWrapper = ({ component: Component, isPrivate = false, ...rest }) => {
}
if (isAuth && !isPrivate) {
- return (
-
- );
+ return ;
}
return ;