fix: More specific selection of relation entities

pull/43/head
Boaz Poolman 2022-01-21 17:33:14 +01:00
parent 8abf651a46
commit dbe3ea8c88
2 changed files with 11 additions and 5 deletions

View File

@ -104,8 +104,8 @@ const ConfigType = class ConfigType {
existingConfig = sanitizeConfig(existingConfig, relationName, relationSortFields); existingConfig = sanitizeConfig(existingConfig, relationName, relationSortFields);
configContent = sanitizeConfig(configContent, relationName, relationSortFields); configContent = sanitizeConfig(configContent, relationName, relationSortFields);
const configToAdd = difference(configContent[relationName], existingConfig[relationName], relationSortFields[0]); const configToAdd = difference(configContent[relationName], existingConfig[relationName], relationSortFields);
const configToDelete = difference(existingConfig[relationName], configContent[relationName], relationSortFields[0]); const configToDelete = difference(existingConfig[relationName], configContent[relationName], relationSortFields);
await Promise.all(configToDelete.map(async (config) => { await Promise.all(configToDelete.map(async (config) => {
const whereClause = {}; const whereClause = {};

View File

@ -1,6 +1,12 @@
const difference = (arrayOne, arrayTwo, compareKey) => { const difference = (arrayOne, arrayTwo, compareKeys) => {
return arrayOne.filter(({ [compareKey]: id1 }) => { return arrayOne.filter(({
return !arrayTwo.some(({ [compareKey]: id2 }) => id2 === id1); [compareKeys[0]]: id1,
[compareKeys[1]]: id2,
}) => {
return !arrayTwo.some(({
[compareKeys[0]]: id3,
[compareKeys[1]]: id4,
}) => id1 === id3 && id2 === id4);
}); });
}; };