Skip to content

Commit

Permalink
LPS-193374 Make the front display errors coming from the objects admi…
Browse files Browse the repository at this point in the history
…n api
  • Loading branch information
pedro-oliveira446 committed Aug 18, 2023
1 parent d8ae02d commit ab3c447
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -89,51 +89,63 @@ export default function Action({
openToast({message: successMessage});
}
catch (error) {
const {detail} = error as {detail?: string};
const details = JSON.parse(detail as string);
const newErrors: Error = {};

const parseError = (details: ErrorMessage[], errors: Error) => {
details.forEach(({fieldName, message, messages}) => {
if (message) {
errors[fieldName] = message;
}
else {
errors[fieldName] = {};
parseError(
messages as ErrorMessage[],
errors[fieldName] as Error
);
}
});
const {detail, message} = error as {
detail?: string;
message?: string;
};

parseError(details, newErrors);
if (detail) {
const details = JSON.parse(detail as string);
const newErrors: Error = {};

setBackEndErrors(newErrors);
const parseError = (details: ErrorMessage[], errors: Error) => {
details.forEach(({fieldName, message, messages}) => {
if (message) {
errors[fieldName] = message;
}
else {
errors[fieldName] = {};
parseError(
messages as ErrorMessage[],
errors[fieldName] as Error
);
}
});
};

const errorMessages = new Set<string>();
parseError(details, newErrors);

const getErrorMessage = (errors: Error) => {
Object.values(errors).forEach((value) => {
if (typeof value === 'string') {
if (!errorMessages.has(value)) {
errorMessages.add(value);
}
}
else {
getErrorMessage(value);
}
});
};
setBackEndErrors(newErrors);

const errorMessages = new Set<string>();

if (newErrors) {
getErrorMessage(newErrors);
errorMessages.forEach((message) => {
openToast({
message,
type: 'danger',
const getErrorMessage = (errors: Error) => {
Object.values(errors).forEach((value) => {
if (typeof value === 'string') {
if (!errorMessages.has(value)) {
errorMessages.add(value);
}
}
else {
getErrorMessage(value);
}
});
};

if (newErrors) {
getErrorMessage(newErrors);
errorMessages.forEach((message) => {
openToast({
message,
type: 'danger',
});
});
}
}
else if (message) {
openToast({
message,
type: 'danger',
});
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,17 @@ export default function EditObjectValidation({
}
catch (error) {
const {detail, message} = error as ErrorDetails;
const {fieldName, message: detailMessage} = JSON.parse(
detail as string
) as {
fieldName: keyof ObjectValidationErrors;
message: string;
};

setErrorMessage({[fieldName]: detailMessage});

if (detail) {
const {fieldName, message: detailMessage} = JSON.parse(
detail as string
) as {
fieldName: keyof ObjectValidationErrors;
message: string;
};

setErrorMessage({[fieldName]: detailMessage});
}

openToast({message, type: 'danger'});
}
Expand Down

0 comments on commit ab3c447

Please sign in to comment.