Merge branch 'develop' into feature/delete_branches

This commit is contained in:
Eduard Heimbuch
2020-11-12 14:58:51 +01:00
committed by GitHub
31 changed files with 600 additions and 71 deletions

View File

@@ -42,6 +42,7 @@ class BackendErrorNotification extends React.Component<Props> {
<div className="content">
<p className="subtitle">{this.renderErrorName()}</p>
<p>{this.renderErrorDescription()}</p>
{this.renderAdditionalMessages()}
<p>{this.renderViolations()}</p>
{this.renderMetadata()}
</div>
@@ -51,7 +52,7 @@ class BackendErrorNotification extends React.Component<Props> {
renderErrorName = () => {
const { error, t } = this.props;
const translation = t("errors." + error.errorCode + ".displayName");
const translation = t(`errors.${error.errorCode}.displayName`);
if (translation === error.errorCode) {
return error.message;
}
@@ -60,13 +61,32 @@ class BackendErrorNotification extends React.Component<Props> {
renderErrorDescription = () => {
const { error, t } = this.props;
const translation = t("errors." + error.errorCode + ".description");
const translation = t(`errors.${error.errorCode}.description`);
if (translation === error.errorCode) {
return "";
}
return translation;
};
renderAdditionalMessages = () => {
const { error, t } = this.props;
if (error.additionalMessages) {
return (
<>
<hr />
{error.additionalMessages
.map(additionalMessage =>
additionalMessage.key ? t(`errors.${additionalMessage.key}.description`) : additionalMessage.message
)
.map(message => (
<p>{message}</p>
))}
<hr />
</>
);
}
};
renderViolations = () => {
const { error, t } = this.props;
if (error.violations) {

View File

@@ -31,6 +31,10 @@ export type Violation = {
message: string;
key?: string;
};
export type AdditionalMessage = {
key?: string;
message?: string;
};
export type BackendErrorContent = {
transactionId: string;
@@ -39,6 +43,7 @@ export type BackendErrorContent = {
url?: string;
context: Context;
violations: Violation[];
additionalMessages?: AdditionalMessage[];
};
export class BackendError extends Error {
@@ -48,6 +53,7 @@ export class BackendError extends Error {
context: Context = [];
statusCode: number;
violations: Violation[];
additionalMessages?: AdditionalMessage[];
constructor(content: BackendErrorContent, name: string, statusCode: number) {
super(content.message);
@@ -58,6 +64,7 @@ export class BackendError extends Error {
this.context = content.context;
this.statusCode = statusCode;
this.violations = content.violations;
this.additionalMessages = content.additionalMessages;
}
}