15027: Fixes collection update requests to only send what's being updated.
[arvados-workbench2.git] / src / store / collection-panel / collection-panel-action.ts
index cb28fcea8ad6aa768b49e7b21cc42f83f1faaf1b..159fb27de8cd57ae25efb9f9caad1327b265949c 100644 (file)
@@ -45,11 +45,14 @@ export const createCollectionTag = (data: TagProperty) =>
         const uuid = item ? item.uuid : '';
         try {
             if (item) {
-                const d: Partial<CollectionResource> = {
-                    properties: JSON.parse(JSON.stringify(item.properties))
-                };
-                d.properties[data.key] = data.value;
-                const updatedCollection = await services.collectionService.update(uuid, d);
+                const updatedCollection = await services.collectionService.update(
+                    uuid, {
+                        properties: {
+                            ...JSON.parse(JSON.stringify(item.properties)),
+                            [data.key]: data.value
+                        }
+                    }
+                );
                 item.properties[data.key] = data.value;
                 dispatch(resourcesActions.SET_RESOURCES([updatedCollection]));
                 dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Tag has been successfully added.", hideDuration: 2000, kind: SnackbarKind.SUCCESS }));
@@ -78,12 +81,12 @@ export const deleteCollectionTag = (key: string) =>
         const uuid = item ? item.uuid : '';
         try {
             if (item) {
-                const data: Partial<CollectionResource> = {
-                    properties: JSON.parse(JSON.stringify(item.properties))
-                };
-                delete data.properties[key];
-                const updatedCollection = await services.collectionService.update(uuid, data);
                 delete item.properties[key];
+                const updatedCollection = await services.collectionService.update(
+                    uuid, {
+                        properties: {...item.properties}
+                    }
+                );
                 dispatch(resourcesActions.SET_RESOURCES([updatedCollection]));
                 dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Tag has been successfully deleted.", hideDuration: 2000, kind: SnackbarKind.SUCCESS }));
                 return updatedCollection;