improvement: started translation of backend errors

This commit is contained in:
canove
2020-10-13 06:50:00 -03:00
parent 09f8ef9be0
commit 011d8d5dfe
15 changed files with 100 additions and 54 deletions

View File

@@ -8,9 +8,7 @@ const CheckContactOpenTickets = async (contactId: number): Promise<void> => {
});
if (ticket) {
throw new AppError(
"There's already an open or pending ticket for this contact."
);
throw new AppError("ERR_OTHER_OPEN_TICKET");
}
};

View File

@@ -7,7 +7,7 @@ const GetDefaultWhatsApp = async (): Promise<Whatsapp> => {
});
if (!defaultWhatsapp) {
throw new AppError("No default WhatsApp found. Check Connection page.");
throw new AppError("ERR_NO_WAPP_FOUND");
}
return defaultWhatsapp;

View File

@@ -1,6 +1,5 @@
import { Client as Session } from "whatsapp-web.js";
import { getWbot } from "../libs/wbot";
import AppError from "../errors/AppError";
import GetDefaultWhatsApp from "./GetDefaultWhatsApp";
import Ticket from "../models/Ticket";
@@ -8,9 +7,6 @@ const GetTicketWbot = async (ticket: Ticket): Promise<Session> => {
if (!ticket.whatsappId) {
const defaultWhatsapp = await GetDefaultWhatsApp();
if (!defaultWhatsapp) {
throw new AppError("No default WhatsApp found. Check Connection page.");
}
await ticket.$set("whatsapp", defaultWhatsapp);
}

View File

@@ -17,10 +17,6 @@ const CreateTicketService = async ({
}: Request): Promise<Ticket> => {
const defaultWhatsapp = await GetDefaultWhatsApp();
if (!defaultWhatsapp) {
throw new AppError("No default WhatsApp found. Check Connection page.");
}
await CheckContactOpenTickets(contactId);
const { isGroup } = await ShowContactService(contactId);

View File

@@ -25,11 +25,11 @@ const AuthUserService = async ({
});
if (!user) {
throw new AppError("Incorrect user/password combination.", 401);
throw new AppError("ERR_INVALID_CREDENTIALS", 401);
}
if (!(await user.checkPassword(password))) {
throw new AppError("Incorrect user/password combination.", 401);
throw new AppError("ERR_INVALID_CREDENTIALS", 401);
}
const token = createAccessToken(user);

View File

@@ -25,9 +25,7 @@ const DeleteWhatsAppMessage = async (messageId: string): Promise<Message> => {
try {
await messageToDelete.delete(true);
} catch (err) {
throw new AppError(
"Couldn't delete message from WhatsApp. Check connections page."
);
throw new AppError("ERR_DELETE_WAPP_MSG");
}
await message.update({ isDeleted: true });

View File

@@ -31,9 +31,7 @@ const SendWhatsAppMedia = async ({
return sentMessage;
} catch (err) {
console.log(err);
throw new AppError(
"Could not send whatsapp message. Check connections page."
);
throw new AppError("ERR_SENDING_WAPP_MSG");
}
};

View File

@@ -24,9 +24,7 @@ const SendWhatsAppMessage = async ({
return sentMessage;
} catch (err) {
console.log(err);
throw new AppError(
"Could not send whatsapp message. Check connections page."
);
throw new AppError("ERR_SENDING_WAPP_MSG");
}
};

View File

@@ -156,6 +156,7 @@ const MessageInput = ({ ticketStatus }) => {
const handleUploadMedia = async e => {
setLoading(true);
e.preventDefault();
const formData = new FormData();
formData.append("media", media.raw);
formData.append("fromMe", true);
@@ -164,11 +165,14 @@ const MessageInput = ({ ticketStatus }) => {
try {
await api.post(`/messages/${ticketId}`, formData);
} catch (err) {
console.log(err);
if (err.response && err.response.data && err.response.data.error) {
const errorMsg = err.response?.data?.error;
if (errorMsg === "ERR_SENDING_WAPP_MSG") {
toast.error(i18n.t("messagesInput.toasts.error"));
} else {
toast.error(err.response.data.error);
}
}
setLoading(false);
setMedia(mediaInitialState);
};
@@ -176,6 +180,7 @@ const MessageInput = ({ ticketStatus }) => {
const handleSendMessage = async () => {
if (inputMessage.trim() === "") return;
setLoading(true);
const message = {
read: 1,
fromMe: true,
@@ -185,11 +190,18 @@ const MessageInput = ({ ticketStatus }) => {
try {
await api.post(`/messages/${ticketId}`, message);
} catch (err) {
console.log(err);
if (err.response && err.response.data && err.response.data.error) {
toast.error(err.response.data.error);
const errorMsg = err.response?.data?.error;
if (errorMsg) {
if (i18n.exists(`backendErrors.${errorMsg}`)) {
toast.error(i18n.t(`backendErrors.${errorMsg}`));
} else {
toast.error(err.response.data.error);
}
} else {
toast.error("Unknown error");
}
}
setInputMessage("");
setShowEmoji(false);
setLoading(false);
@@ -225,15 +237,21 @@ const MessageInput = ({ ticketStatus }) => {
formData.append("fromMe", true);
await api.post(`/messages/${ticketId}`, formData);
setRecording(false);
setLoading(false);
} catch (err) {
console.log(err);
if (err.response && err.response.data && err.response.data.error) {
toast.error(err.response.data.error);
const errorMsg = err.response?.data?.error;
if (errorMsg) {
if (i18n.exists(`backendErrors.${errorMsg}`)) {
toast.error(i18n.t(`backendErrors.${errorMsg}`));
} else {
toast.error(err.response.data.error);
}
} else {
toast.error("Unknown error");
}
}
setRecording(false);
setLoading(false);
};
const handleCancelAudio = async () => {

View File

@@ -16,9 +16,15 @@ const MessageOptionsMenu = ({ messageId, menuOpen, handleClose, anchorEl }) => {
try {
await api.delete(`/messages/${messageId}`);
} catch (err) {
console.log(err);
if (err.response && err.response.data && err.response.data.error) {
toast.error(err.response.data.error);
const errorMsg = err.response?.data?.error;
if (errorMsg) {
if (i18n.exists(`backendErrors.${errorMsg}`)) {
toast.error(i18n.t(`backendErrors.${errorMsg}`));
} else {
toast.error(err.response.data.error);
}
} else {
toast.error("Unknown error");
}
}
};

View File

@@ -25,12 +25,6 @@ const useStyles = makeStyles(theme => ({
display: "flex",
flexWrap: "wrap",
},
// btnWrapper: {
// // margin: theme.spacing(1),
// // position: "relative",
// display: "flex",
// },
}));
const filterOptions = createFilterOptions({
@@ -89,9 +83,15 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
});
history.push(`/tickets/${ticket.id}`);
} catch (err) {
console.log(err);
if (err.response && err.response.data && err.response.data.error) {
toast.error(err.response.data.error);
const errorMsg = err.response?.data?.error;
if (errorMsg) {
if (i18n.exists(`backendErrors.${errorMsg}`)) {
toast.error(i18n.t(`backendErrors.${errorMsg}`));
} else {
toast.error(err.response.data.error);
}
} else {
toast.error("Unknown error");
}
}
setLoading(false);

View File

@@ -72,6 +72,7 @@ const useAuth = () => {
const handleLogin = async (e, user) => {
setLoading(true);
e.preventDefault();
try {
const { data } = await api.post("/auth/login", user);
localStorage.setItem("token", JSON.stringify(data.token));
@@ -79,17 +80,24 @@ const useAuth = () => {
localStorage.setItem("profile", data.profile);
localStorage.setItem("userId", data.userId);
api.defaults.headers.Authorization = `Bearer ${data.token}`;
setIsAuth(true);
toast.success(i18n.t("auth.toasts.success"));
setLoading(false);
history.push("/tickets");
} catch (err) {
console.log(err);
if (err.response && err.response.data && err.response.data.error) {
toast.error(err.response.data.error);
const errorMsg = err.response?.data?.error;
if (errorMsg) {
if (i18n.exists(`backendErrors.${errorMsg}`)) {
toast.error(i18n.t(`backendErrors.${errorMsg}`));
} else {
toast.error(err.response.data.error);
}
} else {
toast.error("Unknown error");
}
setLoading(false);
}
setLoading(false);
};
const handleLogout = e => {

View File

@@ -31,7 +31,6 @@ const messages = {
auth: {
toasts: {
success: "Login successfully!",
fail: "Authentication error. Please log in again",
},
},
dashboard: {
@@ -287,6 +286,16 @@ const messages = {
message: "This action cannot be reverted.",
},
},
backendErrors: {
ERR_NO_WAPP_FOUND: "No default WhatsApp found. Check connections page.",
ERR_INVALID_CREDENTIALS: "Authentication error. Please try again.",
ERR_SENDING_WAPP_MSG:
"Error sending WhatsApp message. Check connections page.",
ERR_DELETE_WAPP_MSG:
"Couldn't delete message from WhatsApp. Check connections page.",
ERR_OTHER_OPEN_TICKET:
"There's already an open or pending ticket for this contact.",
},
},
},
};

View File

@@ -32,7 +32,6 @@ const messages = {
auth: {
toasts: {
success: "¡Inicio de sesión exitoso!",
fail: "Error de autenticación. Por favor intenta de nuevo.",
},
},
dashboard: {
@@ -292,6 +291,17 @@ const messages = {
message: "Esta acción no puede ser revertida.",
},
},
backendErrors: {
ERR_NO_WAPP_FOUND:
"No se encontró WhatsApp predeterminado. Verifique la página de conexiones.",
ERR_INVALID_CREDENTIALS: "Error de autenticación. Vuelva a intentarlo.",
ERR_SENDING_WAPP_MSG:
"Error al enviar el mensaje de WhatsApp. Verifique la página de conexiones.",
ERR_DELETE_WAPP_MSG:
"No se pudo borrar el mensaje de WhatsApp. Verifique la página de conexiones.",
ERR_OTHER_OPEN_TICKET:
"Ya hay un ticket abierto o pendiente para este contacto.",
},
},
},
};

View File

@@ -31,7 +31,6 @@ const messages = {
auth: {
toasts: {
success: "Login efetuado com sucesso!",
fail: "Erro de autenticação. Por favor, faça login novamente",
},
},
dashboard: {
@@ -290,6 +289,18 @@ const messages = {
message: "Esta ação não pode ser revertida.",
},
},
backendErrors: {
ERR_NO_WAPP_FOUND:
"Nenhum WhatsApp padrão encontrado. Verifique a página de conexões.",
ERR_INVALID_CREDENTIALS:
"Erro de autenticação. Por favor, tente novamente.",
ERR_SENDING_WAPP_MSG:
"Erro ao enviar mensagem do WhatsApp. Verifique a página de conexões.",
ERR_DELETE_WAPP_MSG:
"Não foi possível excluir a mensagem do WhatsApp. Verifique a página de conexões.",
ERR_OTHER_OPEN_TICKET:
"Já existe um tíquete aberto ou pendente para este contato.",
},
},
},
};