Skip to content
Snippets Groups Projects
Commit ca20c59c authored by Jan Zickermann's avatar Jan Zickermann
Browse files

OZG-4949 OZG-5136 Get message from InvalidParamsItem

parent d9999c43
No related branches found
No related tags found
No related merge requests found
...@@ -24,7 +24,14 @@ ...@@ -24,7 +24,14 @@
import {UntypedFormControl, UntypedFormGroup} from '@angular/forms'; import {UntypedFormControl, UntypedFormGroup} from '@angular/forms';
import {createIssue} from '../../../test/error'; import {createIssue} from '../../../test/error';
import {Issue} from '../tech.model'; import {Issue} from '../tech.model';
import { getControlForIssue, getMessageForIssue, setValidationError } from './tech.validation.util'; import {
getControlForIssue,
getMessageForInvalidParamsItem,
getMessageForIssue,
setValidationError,
} from './tech.validation.util';
import {InvalidParamsItem} from '@alfa-client/tech-shared';
import {ValidationMessageCode} from './tech.validation.messages';
describe('ValidationUtils', () => { describe('ValidationUtils', () => {
describe('setValidationError', () => { describe('setValidationError', () => {
...@@ -136,4 +143,17 @@ describe('ValidationUtils', () => { ...@@ -136,4 +143,17 @@ describe('ValidationUtils', () => {
expect(msg).toContain('3'); expect(msg).toContain('3');
}); });
}); });
describe('get message for invalid-params-item', () => {
const item: InvalidParamsItem = {
name: 'name-of-field',
reason: ValidationMessageCode.VALIDATION_FIELD_EMPTY,
};
it('should return message', () => {
const msg = getMessageForInvalidParamsItem(item);
expect(msg).toEqual(`Bitte ${item.name} ausfüllen`);
});
});
}); });
...@@ -25,7 +25,8 @@ import { AbstractControl, UntypedFormGroup } from '@angular/forms'; ...@@ -25,7 +25,8 @@ import { AbstractControl, UntypedFormGroup } from '@angular/forms';
import {isNil} from 'lodash-es'; import {isNil} from 'lodash-es';
import {ApiError, Issue} from '../tech.model'; import {ApiError, Issue} from '../tech.model';
import {replacePlaceholder} from '../tech.util'; import {replacePlaceholder} from '../tech.util';
import { ValidationMessageCode, VALIDATION_MESSAGES } from './tech.validation.messages'; import {VALIDATION_MESSAGES, ValidationMessageCode} from './tech.validation.messages';
import {InvalidParamsItem} from '../error/error.util';
export function isValidationError(issue: Issue): boolean { export function isValidationError(issue: Issue): boolean {
return issue.messageCode.includes('javax.validation.constraints'); return issue.messageCode.includes('javax.validation.constraints');
...@@ -66,6 +67,22 @@ export function getMessageForIssue(label: string, issue: Issue) { ...@@ -66,6 +67,22 @@ export function getMessageForIssue(label: string, issue: Issue) {
return msg; return msg;
} }
export function getMessageForInvalidParamsItem(item: InvalidParamsItem): string {
let formatString = VALIDATION_MESSAGES[item.reason] ?? item.reason;
for (const [itemField, value] of Object.entries(item)) {
const itemFieldToPlaceholder = {
name: 'field',
};
formatString = replacePlaceholder(
formatString,
itemFieldToPlaceholder[itemField] ?? itemField,
value,
);
}
return formatString;
}
export function getMessageCode(apiError: ApiError): string { export function getMessageCode(apiError: ApiError): string {
return apiError.issues[0].messageCode; return apiError.issues[0].messageCode;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment