Skip to content

Commit eac85ef

Browse files
Allowed nodes validation (#1290)
* added validation for tuple schema relationships * remove duplicate --------- Co-authored-by: kaustubh-darekar <kaustubh_darekar@persistent.com>
1 parent 2e930f7 commit eac85ef

File tree

3 files changed

+10
-12
lines changed

3 files changed

+10
-12
lines changed

frontend/src/components/Layout/PageLayout.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import LoadDBSchemaDialog from '../Popups/GraphEnhancementDialog/EnitityExtracti
2222
import PredefinedSchemaDialog from '../Popups/GraphEnhancementDialog/EnitityExtraction/PredefinedSchemaDialog';
2323
import { SKIP_AUTH } from '../../utils/Constants';
2424
import { useNavigate } from 'react-router';
25-
import { deduplicateByRelationshipTypeOnly, deduplicateNodeByValue } from '../../utils/Utils';
25+
import { deduplicateByFullPattern, deduplicateNodeByValue } from '../../utils/Utils';
2626

2727
const GCSModal = lazy(() => import('../DataSources/GCS/GCSModal'));
2828
const S3Modal = lazy(() => import('../DataSources/AWS/S3Modal'));
@@ -378,7 +378,7 @@ const PageLayout: React.FC = () => {
378378
setSchemaValRels(rels);
379379
setCombinedRelsVal((prevRels: OptionType[]) => {
380380
const combined = [...rels, ...prevRels];
381-
return deduplicateByRelationshipTypeOnly(combined);
381+
return deduplicateByFullPattern(combined);
382382
});
383383
setSchemaView('text');
384384
localStorage.setItem(LOCAL_KEYS.source, JSON.stringify(updatedSource));
@@ -418,7 +418,7 @@ const PageLayout: React.FC = () => {
418418
setDbRels(rels);
419419
setCombinedRelsVal((prevRels: OptionType[]) => {
420420
const combined = [...rels, ...prevRels];
421-
return deduplicateByRelationshipTypeOnly(combined);
421+
return deduplicateByFullPattern(combined);
422422
});
423423
localStorage.setItem(LOCAL_KEYS.source, JSON.stringify(updatedSource));
424424
localStorage.setItem(LOCAL_KEYS.type, JSON.stringify(updatedType));
@@ -456,7 +456,7 @@ const PageLayout: React.FC = () => {
456456
setPreDefinedRels(rels);
457457
setCombinedRelsVal((prevRels: OptionType[]) => {
458458
const combined = [...rels, ...prevRels];
459-
return deduplicateByRelationshipTypeOnly(combined);
459+
return deduplicateByFullPattern(combined);
460460
});
461461
localStorage.setItem(LOCAL_KEYS.source, JSON.stringify(updatedSource));
462462
localStorage.setItem(LOCAL_KEYS.type, JSON.stringify(updatedType));

frontend/src/components/Popups/GraphEnhancementDialog/EnitityExtraction/NewEntityExtractionSetting.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
updateLocalStorage,
1414
extractOptions,
1515
parseRelationshipString,
16-
deduplicateByRelationshipTypeOnly,
16+
deduplicateByFullPattern,
1717
deduplicateNodeByValue,
1818
} from '../../../../utils/Utils';
1919
import TooltipWrapper from '../../../UI/TipWrapper';
@@ -175,15 +175,15 @@ export default function NewEntityExtractionSetting({
175175
});
176176
setUserDefinedRels((prev: OptionType[]) => {
177177
const combined = [...prev, ...relationshipTypeOptions];
178-
return deduplicateByRelationshipTypeOnly(combined);
178+
return deduplicateByFullPattern(combined);
179179
});
180180
setCombinedNodes((prev: OptionType[]) => {
181181
const combined = [...prev, ...nodeLabelOptions];
182182
return deduplicateNodeByValue(combined);
183183
});
184184
setCombinedRels((prev: OptionType[]) => {
185185
const combined = [...prev, ...relationshipTypeOptions];
186-
return deduplicateByRelationshipTypeOnly(combined);
186+
return deduplicateByFullPattern(combined);
187187
});
188188
setTupleOptions((prev) => [...updatedTuples, ...prev]);
189189
} else {

frontend/src/utils/Utils.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -881,14 +881,12 @@ export const deduplicateNodeByValue = (arrays: { value: any }[]) => {
881881
});
882882
return Array.from(map.values());
883883
};
884-
885-
export const deduplicateByRelationshipTypeOnly = (arrays: { value: string; label: string }[]) => {
884+
export const deduplicateByFullPattern = (arrays: { value: string; label: string }[]) => {
886885
const seen = new Set<string>();
887886
const result: { value: string; label: string }[] = [];
888887
arrays.forEach((item) => {
889-
const [, type] = item.value.split(',');
890-
if (!seen.has(type)) {
891-
seen.add(type);
888+
if (!seen.has(item.value)) {
889+
seen.add(item.value);
892890
result.push(item);
893891
}
894892
});

0 commit comments

Comments
 (0)