소스 검색

Skip schema validation if type is string

Alexander Krivonosov 3 년 전
부모
커밋
cfa4e11506
1개의 변경된 파일16개의 추가작업 그리고 12개의 파일을 삭제
  1. 16 12
      kafka-ui-react-app/src/components/Topics/Topic/SendMessage/validateMessage.ts

+ 16 - 12
kafka-ui-react-app/src/components/Topics/Topic/SendMessage/validateMessage.ts

@@ -16,10 +16,13 @@ const validateMessage = async (
       let contentIsValid = false;
 
       try {
-        const validateKey = keyAjv.compile(
-          JSON.parse(messageSchema.key.schema)
-        );
-        keyIsValid = validateKey(JSON.parse(key));
+        const keySchema = JSON.parse(messageSchema.key.schema);
+        const validateKey = keyAjv.compile(keySchema);
+        if (keySchema.type === 'string') {
+          keyIsValid = true;
+        } else {
+          keyIsValid = validateKey(JSON.parse(key));
+        }
         if (!keyIsValid) {
           const errorString: string[] = [];
           if (validateKey.errors) {
@@ -35,10 +38,13 @@ const validateMessage = async (
         setSchemaErrors((e) => [...e, `Key ${err.message}`]);
       }
       try {
-        const validateContent = contentAjv.compile(
-          JSON.parse(messageSchema.value.schema)
-        );
-        contentIsValid = validateContent(JSON.parse(content));
+        const contentSchema = JSON.parse(messageSchema.value.schema);
+        const validateContent = contentAjv.compile(contentSchema);
+        if (contentSchema.type === 'string') {
+          contentIsValid = true;
+        } else {
+          contentIsValid = validateContent(JSON.parse(content));
+        }
         if (!contentIsValid) {
           const errorString: string[] = [];
           if (validateContent.errors) {
@@ -54,12 +60,10 @@ const validateMessage = async (
         setSchemaErrors((e) => [...e, `Content ${err.message}`]);
       }
 
-      if (keyIsValid && contentIsValid) {
-        return true;
-      }
+      return keyIsValid && contentIsValid;
     }
   } catch (err) {
-    setSchemaErrors((e) => (e ? `${e}-${err.message}` : err.message));
+    setSchemaErrors((e) => [...e, err.message]);
   }
   return false;
 };