Skip to content

Commit

Permalink
SHIBUI-1602 Added regex validator for dynamic providers
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Nov 21, 2019
1 parent 455e854 commit edc2a0c
Showing 1 changed file with 26 additions and 5 deletions.
31 changes: 26 additions & 5 deletions ui/src/app/metadata/provider/model/dynamic-http.provider.form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ import { Wizard } from '../../../wizard/model';
import { DynamicHttpMetadataProvider } from '../../domain/model/providers/dynamic-http-metadata-provider';
import { BaseMetadataProviderEditor } from './base.provider.form';
import { metadataFilterProcessor } from './utilities';
import RegexValidator from '../../../shared/validation/regex.validator';
import { memoize } from '../../../shared/memo';

const checkRegex = memoize(RegexValidator.isValidRegex);

export const DynamicHttpMetadataProviderWizard: Wizard<DynamicHttpMetadataProvider> = {
...BaseMetadataProviderEditor,
Expand Down Expand Up @@ -50,13 +54,30 @@ export const DynamicHttpMetadataProviderWizard: Wizard<DynamicHttpMetadataProvid
if (!property.parent || !property.parent.value) {
return null;
}
const isRegex = property.parent.value['@type'] === 'Regex';
const err = isRegex && !value ? {
code: 'REQUIRED',

const error = {
path: `#${property.path}`,
message: 'message.match-required',
params: [value]
} : null;
};

const isRegex = property.parent.value['@type'] === 'Regex';
let err = null;
if (isRegex) {
if (!value) {
err = {
...error,
code: 'REQUIRED',
message: 'message.match-required'
};
}
if (!checkRegex(value)) {
err = {
...error,
code: 'INVALID_REGEX',
message: 'message.invalid-regex-pattern'
};
}
}
return err;
};

Expand Down

0 comments on commit edc2a0c

Please sign in to comment.