From 0c9328084286a5ea0d6d5655abfece79dc3b2abf Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Fri, 11 Jun 2021 07:48:10 -0700 Subject: [PATCH] Added regex validation to dynamic provider --- .../DynamicHttpMetadataProviderDefinition.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ui/src/app/metadata/domain/provider/DynamicHttpMetadataProviderDefinition.js b/ui/src/app/metadata/domain/provider/DynamicHttpMetadataProviderDefinition.js index ee1ef3ceb..09218a290 100644 --- a/ui/src/app/metadata/domain/provider/DynamicHttpMetadataProviderDefinition.js +++ b/ui/src/app/metadata/domain/provider/DynamicHttpMetadataProviderDefinition.js @@ -2,12 +2,28 @@ import { BaseProviderDefinition, HttpMetadataResolverAttributesSchema, MetadataF import API_BASE_PATH from '../../../App.constant'; import defaultsDeep from 'lodash/defaultsDeep'; import { DurationOptions } from '../data'; +import { isValidRegex } from '../../../core/utility/is_valid_regex'; export const DynamicHttpMetadataProviderWizard = { ...BaseProviderDefinition, label: 'DynamicHttpMetadataProvider', type: 'DynamicHttpMetadataResolver', schema: `${API_BASE_PATH}/ui/MetadataResolver/DynamicHttpMetadataResolver`, + validator: (data = [], current = { resourceId: null }) => { + const base = BaseProviderDefinition.validator(data, current); + return (formData, errors) => { + const errorList = base(formData, errors); + if (formData?.metadataRequestURLConstructionScheme['@type'] === 'Regex') { + const { metadataRequestURLConstructionScheme: { match } } = formData; + const isValid = isValidRegex(match); + if (!isValid) { + errors.metadataRequestURLConstructionScheme.match.addError('message.invalid-regex-pattern'); + } + } + + return errorList; + } + }, steps: [ ...BaseProviderDefinition.steps, {