improvement: translated all backend errors messages

This commit is contained in:
canove
2020-10-13 22:53:05 -03:00
parent 558475f121
commit a567614c63
45 changed files with 308 additions and 120 deletions

View File

@@ -30,7 +30,7 @@ export const update = async (
const token: string = req.cookies.jrt;
if (!token) {
throw new AppError("Invalid session. Please login.", 401);
throw new AppError("ERR_SESSION_EXPIRED", 401);
}
const { newToken, refreshToken } = await RefreshTokenService(token);

View File

@@ -8,7 +8,7 @@ import ListSettingsService from "../services/SettingServices/ListSettingsService
export const index = async (req: Request, res: Response): Promise<Response> => {
if (req.user.profile !== "admin") {
throw new AppError("Only administrators can access resource.", 403);
throw new AppError("ERR_NO_PERMISSION", 403);
}
const settings = await ListSettingsService();
@@ -21,7 +21,7 @@ export const update = async (
res: Response
): Promise<Response> => {
if (req.user.profile !== "admin") {
throw new AppError("Only administrators can access this route.", 403);
throw new AppError("ERR_NO_PERMISSION", 403);
}
const { settingKey: key } = req.params;
const { value } = req.body;

View File

@@ -17,7 +17,7 @@ type IndexQuery = {
export const index = async (req: Request, res: Response): Promise<Response> => {
if (req.user.profile !== "admin") {
throw new AppError("Only administrators can access this route.", 403); // should be handled better.
throw new AppError("ERR_NO_PERMISSION", 403); // should be handled better.
}
const { searchParam, pageNumber } = req.query as IndexQuery;
@@ -36,9 +36,9 @@ export const store = async (req: Request, res: Response): Promise<Response> => {
req.url === "/signup" &&
(await CheckSettingsHelper("userCreation")) === "disabled"
) {
throw new AppError("User creation is disabled by administrator.", 403);
throw new AppError("ERR_USER_CREATION_DISABLED", 403);
} else if (req.url !== "/signup" && req.user.profile !== "admin") {
throw new AppError("Only administrators can create users.", 403);
throw new AppError("ERR_NO_PERMISSION", 403);
}
const user = await CreateUserService({
@@ -70,7 +70,7 @@ export const update = async (
res: Response
): Promise<Response> => {
if (req.user.profile !== "admin") {
throw new AppError("Only administrators can edit users.", 403);
throw new AppError("ERR_NO_PERMISSION", 403);
}
const { userId } = req.params;
@@ -94,7 +94,7 @@ export const remove = async (
const { userId } = req.params;
if (req.user.profile !== "admin") {
throw new AppError("Only administrators can delete users.", 403);
throw new AppError("ERR_NO_PERMISSION", 403);
}
await DeleteUserService(userId);

View File

@@ -7,7 +7,7 @@ const CheckSettings = async (key: string): Promise<string> => {
});
if (!setting) {
throw new AppError("No setting found with this id.", 404);
throw new AppError("ERR_NO_SETTING_FOUND", 404);
}
return setting.value;

View File

@@ -7,7 +7,7 @@ const GetDefaultWhatsApp = async (): Promise<Whatsapp> => {
});
if (!defaultWhatsapp) {
throw new AppError("ERR_NO_WAPP_FOUND");
throw new AppError("ERR_NO_DEF_WAPP_FOUND");
}
return defaultWhatsapp;

View File

@@ -19,20 +19,13 @@ export const GetWbotMessage = async (
const msgToDelete = chatMessages.find(msg => msg.id.id === messageId);
if (!msgToDelete) {
throw new AppError("msgNotFound");
throw new Error();
}
return msgToDelete;
} catch (err) {
console.log(err);
if (err.message === "msgNotFound") {
throw new AppError(
"Could not find a message witht this ID in WhatsApp chat."
);
}
throw new AppError(
"Could not valid WhatsApp contact. Check connections page"
);
throw new AppError("ERR_DELETE_WAPP_MSG");
}
};

View File

@@ -92,9 +92,7 @@ export const getWbot = (whatsappId: number): Session => {
const sessionIndex = sessions.findIndex(s => s.id === whatsappId);
if (sessionIndex === -1) {
throw new AppError(
"This WhatsApp session is not initialized. Check connections page."
);
throw new AppError("ERR_WAPP_NOT_INITIALIZED");
}
return sessions[sessionIndex];
};

View File

@@ -23,7 +23,7 @@ export const RefreshTokenService = async (token: string): Promise<Response> => {
try {
decoded = verify(token, authConfig.refreshSecret);
} catch (err) {
throw new AppError("Session expire. Please login.", 401);
throw new AppError("ERR_SESSION_EXPIRED", 401);
}
const { id, tokenVersion } = decoded as RefreshTokenPayload;
@@ -31,7 +31,7 @@ export const RefreshTokenService = async (token: string): Promise<Response> => {
const user = await ShowUserService(id);
if (user.tokenVersion !== tokenVersion) {
throw new AppError("Session revoked. Please login.", 401);
throw new AppError("ERR_SESSION_EXPIRED", 401);
}
const newToken = createAccessToken(user);

View File

@@ -25,7 +25,7 @@ const CreateContactService = async ({
});
if (numberExists) {
throw new AppError("A contact with this number already exists.");
throw new AppError("ERR_DUPLICATED_CONTACT");
}
const contact = await Contact.create(

View File

@@ -7,7 +7,7 @@ const DeleteContactService = async (id: string): Promise<void> => {
});
if (!contact) {
throw new AppError("No contact found with this ID.", 404);
throw new AppError("ERR_NO_CONTACT_FOUND", 404);
}
await contact.destroy();

View File

@@ -5,7 +5,7 @@ const ShowContactService = async (id: string | number): Promise<Contact> => {
const contact = await Contact.findByPk(id, { include: ["extraInfo"] });
if (!contact) {
throw new AppError("No contact found with this ID.", 404);
throw new AppError("ERR_NO_CONTACT_FOUND", 404);
}
return contact;

View File

@@ -32,7 +32,7 @@ const UpdateContactService = async ({
});
if (!contact) {
throw new AppError("No contact found with this ID.", 404);
throw new AppError("ERR_NO_CONTACT_FOUND", 404);
}
if (extraInfo) {

View File

@@ -22,7 +22,7 @@ const CreateMessageService = async ({
const ticket = await ShowTicketService(messageData.ticketId);
if (!ticket) {
throw new AppError("No ticket found with this ID", 404);
throw new AppError("ERR_NO_TICKET_FOUND", 404);
}
await Message.upsert(messageData);
@@ -32,7 +32,7 @@ const CreateMessageService = async ({
});
if (!message) {
throw new AppError("Error while creating message on database.", 501);
throw new AppError("ERR_CREATING_MESSAGE", 501);
}
return message;

View File

@@ -25,7 +25,7 @@ const ListMessagesService = async ({
const ticket = await ShowTicketService(ticketId);
if (!ticket) {
throw new AppError("No ticket found with this ID", 404);
throw new AppError("ERR_NO_TICKET_FOUND", 404);
}
const whereCondition = {

View File

@@ -15,7 +15,7 @@ const UpdateSettingService = async ({
});
if (!setting) {
throw new AppError("No setting found with this ID.", 404);
throw new AppError("ERR_NO_SETTING_FOUND", 404);
}
await setting.update({ value });

View File

@@ -31,7 +31,7 @@ const CreateTicketService = async ({
const ticket = await Ticket.findByPk(id, { include: ["contact"] });
if (!ticket) {
throw new AppError("Error, ticket not created.");
throw new AppError("ERR_CREATING_TICKET");
}
return ticket;

View File

@@ -7,7 +7,7 @@ const DeleteTicketService = async (id: string): Promise<Ticket> => {
});
if (!ticket) {
throw new AppError("No ticket found with this ID.", 404);
throw new AppError("ERR_NO_TICKET_FOUND", 404);
}
await ticket.destroy();

View File

@@ -21,7 +21,7 @@ const ShowTicketService = async (id: string | number): Promise<Ticket> => {
});
if (!ticket) {
throw new AppError("No ticket found with this ID", 404);
throw new AppError("ERR_NO_TICKET_FOUND", 404);
}
return ticket;

View File

@@ -38,7 +38,7 @@ const UpdateTicketService = async ({
});
if (!ticket) {
throw new AppError("No ticket found with this ID.", 404);
throw new AppError("ERR_NO_TICKET_FOUND", 404);
}
await SetTicketMessagesAsRead(ticket);

View File

@@ -9,7 +9,7 @@ const DeleteUserService = async (id: string): Promise<void> => {
});
if (!user) {
throw new AppError("No user found with this ID.", 404);
throw new AppError("ERR_NO_USER_FOUND", 404);
}
const userOpenTickets: Ticket[] = await user.$get("tickets", {

View File

@@ -7,7 +7,7 @@ const ShowUserService = async (id: string | number): Promise<User> => {
});
if (!user) {
throw new AppError("No user found with this ID.", 404);
throw new AppError("ERR_NO_USER_FOUND", 404);
}
return user;

View File

@@ -32,7 +32,7 @@ const UpdateUserService = async ({
});
if (!user) {
throw new AppError("No user found with this ID.", 404);
throw new AppError("ERR_NO_USER_FOUND", 404);
}
const schema = Yup.object().shape({

View File

@@ -15,11 +15,9 @@ const CheckIsValidContact = async (number: string): Promise<void> => {
} catch (err) {
console.log(err);
if (err.message === "invalidNumber") {
throw new AppError("This is not a valid whatsapp number.");
throw new AppError("ERR_WAPP_INVALID_CONTACT");
}
throw new AppError(
"Could not valid WhatsApp contact. Check connections page"
);
throw new AppError("ERR_WAPP_CHECK_CONTACT");
}
};

View File

@@ -149,7 +149,7 @@ const handlMedia = async (
const media = await msg.downloadMedia();
if (!media) {
throw new AppError("Cannot download media from whatsapp.");
throw new AppError("ERR_WAPP_DOWNLOAD_MEDIA");
}
if (!media.filename) {

View File

@@ -7,7 +7,7 @@ const DeleteWhatsApprService = async (id: string): Promise<void> => {
});
if (!whatsapp) {
throw new AppError("No whatsapp found with this ID.", 404);
throw new AppError("ERR_NO_WAPP_FOUND", 404);
}
await whatsapp.destroy();

View File

@@ -7,7 +7,7 @@ const ShowWhatsAppService = async (
const whatsapp = await Whatsapp.findByPk(id);
if (!whatsapp) {
throw new AppError("No whatsapp found with this conditions.", 404);
throw new AppError("ERR_NO_WAPP_FOUND", 404);
}
return whatsapp;

View File

@@ -51,7 +51,7 @@ const UpdateWhatsAppService = async ({
});
if (!whatsapp) {
throw new AppError("No whatsapp found with this ID.", 404);
throw new AppError("ERR_NO_WAPP_FOUND", 404);
}
await whatsapp.update({

View File

@@ -81,9 +81,15 @@ const ContactModal = ({ open, onClose, contactId }) => {
const { data } = await api.get(`/contacts/${contactId}`);
setContact(data);
} 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");
}
}
};
@@ -105,9 +111,15 @@ const ContactModal = ({ open, onClose, contactId }) => {
}
toast.success(i18n.t("contactModal.success"));
} 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");
}
}
handleClose();

View File

@@ -26,6 +26,7 @@ import ModalImageCors from "../ModalImageCors";
import MessageOptionsMenu from "../MessageOptionsMenu";
import whatsBackground from "../../assets/wa-background.png";
import { i18n } from "../../translate/i18n";
import api from "../../services/api";
import { toast } from "react-toastify";
@@ -284,9 +285,15 @@ const MessagesList = ({ ticketId, isGroup }) => {
scrollToBottom();
}
} 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

@@ -53,9 +53,15 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
setOptions(data.contacts);
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");
}
}
};

View File

@@ -18,9 +18,15 @@ const QrcodeModal = ({ open, onClose, whatsAppId }) => {
const { data } = await api.get(`/whatsapp/${whatsAppId}`);
setQrCode(data.qrcode);
} 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

@@ -14,6 +14,7 @@ import TicketInfo from "../TicketInfo";
import TicketActionButtons from "../TicketActionButtons";
import MessagesList from "../MessagesList";
import api from "../../services/api";
import { i18n } from "../../translate/i18n";
const drawerWidth = 320;
@@ -76,12 +77,18 @@ const Ticket = () => {
setTicket(data);
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);
}
if (err.response.status === 404) {
history.push("/tickets");
}
} else {
toast.error("Unknown error");
}
}
};

View File

@@ -54,10 +54,15 @@ const TicketActionButtons = ({ ticket }) => {
history.push("/tickets");
}
} catch (err) {
setLoading(false);
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

@@ -16,9 +16,15 @@ const TicketOptionsMenu = ({ ticket, menuOpen, handleClose, anchorEl }) => {
try {
await api.delete(`/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");
}
}
};

View File

@@ -83,9 +83,15 @@ const UserModal = ({ open, onClose, userId }) => {
return { ...prevState, ...data };
});
} 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");
}
}
};
@@ -107,9 +113,15 @@ const UserModal = ({ open, onClose, userId }) => {
}
toast.success(i18n.t("userModal.success"));
} 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");
}
}
handleClose();

View File

@@ -73,9 +73,15 @@ const WhatsAppModal = ({ open, onClose, whatsAppId }) => {
const { data } = await api.get(`whatsapp/${whatsAppId}`);
setWhatsApp(data);
} 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");
}
}
};
@@ -94,9 +100,15 @@ const WhatsAppModal = ({ open, onClose, whatsAppId }) => {
}
toast.success(i18n.t("whatsappModal.success"));
} 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");
}
}
handleClose();

View File

@@ -2,6 +2,7 @@ import { useState, useEffect } from "react";
import { toast } from "react-toastify";
import api from "../../services/api";
import { i18n } from "../../translate/i18n";
const useTickets = ({
searchParam,
@@ -34,9 +35,15 @@ const useTickets = ({
setHasMore(data.hasMore);
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");
}
}
};

View File

@@ -103,9 +103,15 @@ const Connections = () => {
const { data } = await api.get("/whatsapp/");
dispatch({ type: "LOAD_WHATSAPPS", payload: data });
} 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");
}
}
};
@@ -182,9 +188,15 @@ const Connections = () => {
await api.delete(`/whatsapp/${whatsAppId}`);
toast.success(i18n.t("connections.toasts.deleted"));
} 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");
}
}
setDeletingWhatsApp(null);

View File

@@ -114,9 +114,15 @@ const Contacts = () => {
setHasMore(data.hasMore);
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");
}
}
};
@@ -166,9 +172,15 @@ const Contacts = () => {
await api.delete(`/contacts/${contactId}`);
toast.success(i18n.t("contacts.toasts.deleted"));
} 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");
}
}
setDeletingContact(null);
@@ -180,9 +192,15 @@ const Contacts = () => {
try {
await api.post("/contacts/import");
} 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

@@ -43,9 +43,15 @@ const Settings = () => {
const { data } = await api.get("/settings");
setSettings(data);
} 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");
}
}
};
@@ -81,9 +87,15 @@ const Settings = () => {
});
toast.success(i18n.t("settings.success"));
} 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

@@ -78,9 +78,15 @@ const SignUp = () => {
toast.success(i18n.t("signup.toasts.success"));
history.push("/login");
} 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

@@ -112,9 +112,15 @@ const Users = () => {
setHasMore(data.hasMore);
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");
}
}
};
@@ -164,9 +170,15 @@ const Users = () => {
await api.delete(`/users/${userId}`);
toast.success(i18n.t("users.toasts.deleted"));
} 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");
}
}
setDeletingUser(null);

View File

@@ -287,7 +287,15 @@ const messages = {
},
},
backendErrors: {
ERR_NO_WAPP_FOUND: "No default WhatsApp found. Check connections page.",
ERR_NO_DEF_WAPP_FOUND:
"No default WhatsApp found. Check connections page.",
ERR_WAPP_NOT_INITIALIZED:
"This WhatsApp session is not initialized. Check connections page.",
ERR_WAPP_CHECK_CONTACT:
"Could not check WhatsApp contact. Check connections page.",
ERR_WAPP_INVALID_CONTACT: "This is not a valid whatsapp number.",
ERR_WAPP_DOWNLOAD_MEDIA:
"Could not download media from WhatsApp. Check connections page.",
ERR_INVALID_CREDENTIALS: "Authentication error. Please try again.",
ERR_SENDING_WAPP_MSG:
"Error sending WhatsApp message. Check connections page.",
@@ -295,6 +303,18 @@ const messages = {
"Couldn't delete message from WhatsApp. Check connections page.",
ERR_OTHER_OPEN_TICKET:
"There's already an open or pending ticket for this contact.",
ERR_SESSION_EXPIRED: "Session expired. Please login.",
ERR_USER_CREATION_DISABLED:
"User creation was disabled by administrator.",
ERR_NO_PERMISSION: "You don't have permission to access this resource.",
ERR_DUPLICATED_CONTACT: "A contact with this number already exists.",
ERR_NO_SETTING_FOUND: "No setting found with this ID.",
ERR_NO_CONTACT_FOUND: "No contact found with this ID.",
ERR_NO_TICKET_FOUND: "No ticket found with this ID.",
ERR_NO_USER_FOUND: "No user found with this ID.",
ERR_NO_WAPP_FOUND: "No WhatsApp found with this ID.",
ERR_CREATING_MESSAGE: "Error while creating message on database.",
ERR_CREATING_TICKET: "Error while creating ticket on database.",
},
},
},

View File

@@ -292,8 +292,15 @@ const messages = {
},
},
backendErrors: {
ERR_NO_WAPP_FOUND:
ERR_NO_DEF_WAPP_FOUND:
"No se encontró WhatsApp predeterminado. Verifique la página de conexiones.",
ERR_WAPP_NOT_INITIALIZED:
"Esta sesión de WhatsApp no está inicializada. Verifique la página de conexiones.",
ERR_WAPP_CHECK_CONTACT:
"No se pudo verificar el contacto de WhatsApp. Verifique la página de conexiones.",
ERR_WAPP_INVALID_CONTACT: "Este no es un número de whatsapp válido.",
ERR_WAPP_DOWNLOAD_MEDIA:
"No se pudieron descargar los medios de WhatsApp. 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.",
@@ -301,6 +308,19 @@ const messages = {
"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.",
ERR_SESSION_EXPIRED: "Sesión caducada. Inicie sesión.",
ERR_USER_CREATION_DISABLED:
"La creación de usuarios fue deshabilitada por el administrador.",
ERR_NO_PERMISSION: "No tienes permiso para acceder a este recurso.",
ERR_DUPLICATED_CONTACT: "Ya existe un contacto con este número.",
ERR_NO_SETTING_FOUND:
"No se encontró ninguna configuración con este ID.",
ERR_NO_CONTACT_FOUND: "No se encontró ningún contacto con este ID.",
ERR_NO_TICKET_FOUND: "No se encontró ningún ticket con este ID.",
ERR_NO_USER_FOUND: "No se encontró ningún usuario con este ID.",
ERR_NO_WAPP_FOUND: "No se encontró WhatsApp con este ID.",
ERR_CREATING_MESSAGE: "Error al crear el mensaje en la base de datos.",
ERR_CREATING_TICKET: "Error al crear el ticket en la base de datos.",
},
},
},

View File

@@ -290,8 +290,15 @@ const messages = {
},
},
backendErrors: {
ERR_NO_WAPP_FOUND:
ERR_NO_DEF_WAPP_FOUND:
"Nenhum WhatsApp padrão encontrado. Verifique a página de conexões.",
ERR_WAPP_NOT_INITIALIZED:
"Esta sessão do WhatsApp não foi inicializada. Verifique a página de conexões.",
ERR_WAPP_CHECK_CONTACT:
"Não foi possível verificar o contato do WhatsApp. Verifique a página de conexões",
ERR_WAPP_INVALID_CONTACT: "Este não é um número de Whatsapp válido.",
ERR_WAPP_DOWNLOAD_MEDIA:
"Não foi possível baixar mídia do WhatsApp. Verifique a página de conexões.",
ERR_INVALID_CREDENTIALS:
"Erro de autenticação. Por favor, tente novamente.",
ERR_SENDING_WAPP_MSG:
@@ -300,6 +307,18 @@ const messages = {
"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.",
ERR_SESSION_EXPIRED: "Sessão expirada. Por favor entre.",
ERR_USER_CREATION_DISABLED:
"A criação do usuário foi desabilitada pelo administrador.",
ERR_NO_PERMISSION: "Você não tem permissão para acessar este recurso.",
ERR_DUPLICATED_CONTACT: "Já existe um contato com este número.",
ERR_NO_SETTING_FOUND: "Nenhuma configuração encontrada com este ID.",
ERR_NO_CONTACT_FOUND: "Nenhum contato encontrado com este ID.",
ERR_NO_TICKET_FOUND: "Nenhum tíquete encontrado com este ID.",
ERR_NO_USER_FOUND: "Nenhum usuário encontrado com este ID.",
ERR_NO_WAPP_FOUND: "Nenhum WhatsApp encontrado com este ID.",
ERR_CREATING_MESSAGE: "Erro ao criar mensagem no banco de dados.",
ERR_CREATING_TICKET: "Erro ao criar tíquete no banco de dados.",
},
},
},