Init CollectionFilesService
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 3 Aug 2018 06:37:48 +0000 (08:37 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 3 Aug 2018 06:37:48 +0000 (08:37 +0200)
Feature #13855

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/services/collection-files-service/collection-files-service.ts
src/services/services.ts
src/store/collection-panel/collection-panel-action.ts

index fd17dc4ff1c12073d7e42aadf00093810e331d31..96c9e9905820e927efed0e856d8a27cee3e66703 100644 (file)
@@ -3,7 +3,23 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { CollectionService } from "../collection-service/collection-service";
+import { parseKeepManifestText } from "./collection-manifest-parser";
+import { mapManifestToCollectionFilesTree } from "./collection-manifest-mapper";
 
 export class CollectionFilesService {
-    constructor(private collectionService: CollectionService){}
+    
+    constructor(private collectionService: CollectionService) { }
+
+    getFiles(collectionUuid: string) {
+        return this.collectionService
+            .get(collectionUuid)
+            .then(collection =>
+                mapManifestToCollectionFilesTree(
+                    parseKeepManifestText(
+                        collection.manifestText
+                    )
+                )
+            );
+    }
+
 }
\ No newline at end of file
index 69157f8e8f4414e9d01b8ca797f2445b6c876fd6..a05ad9c2288a7e415c37ce474e91468f6deeeeb8 100644 (file)
@@ -9,10 +9,12 @@ import { ProjectService } from "./project-service/project-service";
 import { LinkService } from "./link-service/link-service";
 import { FavoriteService } from "./favorite-service/favorite-service";
 import { CollectionService } from "./collection-service/collection-service";
+import { CollectionFilesService } from "./collection-files-service/collection-files-service";
 
 export const authService = new AuthService(authClient, apiClient);
 export const groupsService = new GroupsService(apiClient);
 export const projectService = new ProjectService(apiClient);
 export const collectionService = new CollectionService(apiClient);
+export const collectionFilesService = new CollectionFilesService(collectionService);
 export const linkService = new LinkService(apiClient);
 export const favoriteService = new FavoriteService(linkService, groupsService);
\ No newline at end of file
index e19bcb4f208331b983942be9f33521a088b9d447..ab2db17d249852dc3b68ef162901dfe858e9f8b9 100644 (file)
@@ -6,7 +6,7 @@ import { unionize, ofType, UnionOf } from "unionize";
 import { Dispatch } from "redux";
 import { ResourceKind } from "../../models/resource";
 import { CollectionResource } from "../../models/collection";
-import { collectionService } from "../../services/services";
+import { collectionService, collectionFilesService } from "../../services/services";
 import { collectionPanelFilesAction } from "./collection-panel-files/collection-panel-files-actions";
 import { createTree } from "../../models/tree";
 import { mapManifestToCollectionFilesTree } from "../../services/collection-files-service/collection-manifest-mapper";
@@ -27,7 +27,9 @@ export const loadCollection = (uuid: string, kind: ResourceKind) =>
             .get(uuid)
             .then(item => {
                 dispatch(collectionPanelActions.LOAD_COLLECTION_SUCCESS({ item }));
-                const files = mapManifestToCollectionFilesTree(parseKeepManifestText(item.manifestText));
+                return collectionFilesService.getFiles(item.uuid);
+            })
+            .then(files => {
                 dispatch(collectionPanelFilesAction.SET_COLLECTION_FILES({ files }));
             });
     };