Skip to content
Snippets Groups Projects
Commit 01ccfbcc authored by stevereis's avatar stevereis
Browse files

fix: Group id fix for csv connector

Group id was based on the group name causing duplicates
Group id is now based on the path (e.g. /grp1/grp2)
parent ebb7cf67
No related branches found
No related tags found
No related merge requests found
...@@ -31,14 +31,29 @@ export default class CSVService implements IEngineService { ...@@ -31,14 +31,29 @@ export default class CSVService implements IEngineService {
data: ExperimentCreateInput, data: ExperimentCreateInput,
isTransient: boolean, isTransient: boolean,
): Experiment | Promise<Experiment> { ): Experiment | Promise<Experiment> {
throw new Error('Method not implemented.'); return {
id: '',
domain: '',
datasets: [],
algorithm: {
id: '',
description: '',
},
name: 'test',
variables: [],
};
} }
listExperiments( listExperiments(
page: number, page: number,
name: string, name: string,
): ListExperiments | Promise<ListExperiments> { ): ListExperiments | Promise<ListExperiments> {
throw new Error('Method not implemented.'); return {
experiments: [],
currentPage: 0,
totalExperiments: 0,
totalPages: 0,
};
} }
getExperiment(id: string): Experiment | Promise<Experiment> { getExperiment(id: string): Experiment | Promise<Experiment> {
...@@ -83,35 +98,40 @@ export default class CSVService implements IEngineService { ...@@ -83,35 +98,40 @@ export default class CSVService implements IEngineService {
row.shift(); // get ride of the variable name, keep only groups row.shift(); // get ride of the variable name, keep only groups
vars.push(variable); if (!vars.find((v) => v.id === variable.id)) vars.push(variable); // avoid duplicate
row let pathId = '';
.filter((group) => !groups[group.toLowerCase()])
.forEach((group, i) => { row.forEach((group, i) => {
const groupId = group.toLowerCase(); const groupId = `${pathId}/${group.toLowerCase()}`;
if (i === 0) rootGroup.groups.push(groupId); pathId = groupId;
groups[groupId] = { if (groups[groupId]) return;
id: groupId, if (i === 0) {
label: group, rootGroup.groups.push(groupId);
variables: [], }
groups: [], groups[groupId] = {
}; id: groupId,
}); label: group,
variables: [],
groups: [],
};
});
const groupId = row[row.length - 1].toLowerCase(); // group's variable container const groupId = pathId; // group's variable container
groups[groupId].variables.push(variable.id); // add variable groups[groupId].variables.push(variable.id); // add variable
row row // fill groups with childrens
.reverse() .reverse()
.map((group) => group.toLowerCase()) .map((group) => group.toLowerCase())
.forEach((group, i) => { .forEach((group, i) => {
const groupId = group.toLowerCase(); const id = pathId;
pathId = pathId.replace(`/${group}`, '');
if (i !== row.length - 1) { if (i !== row.length - 1) {
const parentId = row[i + 1].toLowerCase(); const parentId = pathId;
if (groups[parentId].groups.indexOf(groupId) === -1) if (groups[parentId].groups.indexOf(id) === -1)
groups[parentId].groups.push(groupId); groups[parentId].groups.push(id);
} }
}); });
}); });
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment