+++ /dev/null
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import { CollectionService } from "../collection-service/collection-service";
-import { parseKeepManifestText, stringifyKeepManifest } from "./collection-manifest-parser";
-import { mapManifestToCollectionFilesTree } from "./collection-manifest-mapper";
-
-export class CollectionFilesService {
-
- constructor(private collectionService: CollectionService) { }
-
- getFiles(collectionUuid: string) {
- return this.collectionService
- .get(collectionUuid)
- .then(collection =>
- mapManifestToCollectionFilesTree(
- parseKeepManifestText(
- collection.manifestText
- )
- )
- );
- }
-
- async renameFile(collectionUuid: string, file: { name: string, path: string }, newName: string) {
- const collection = await this.collectionService.get(collectionUuid);
- const manifest = parseKeepManifestText(collection.manifestText);
- const updatedManifest = manifest.map(
- stream => stream.name === file.path
- ? {
- ...stream,
- files: stream.files.map(
- f => f.name === file.name
- ? { ...f, name: newName }
- : f
- )
- }
- : stream
- );
- const manifestText = stringifyKeepManifest(updatedManifest);
- return this.collectionService.update(collectionUuid, { manifestText });
- }
-
- async deleteFile(collectionUuid: string, file: { name: string, path: string }) {
- const collection = await this.collectionService.get(collectionUuid);
- const manifest = parseKeepManifestText(collection.manifestText);
- const updatedManifest = manifest.map(stream =>
- stream.name === file.path
- ? {
- ...stream,
- files: stream.files.filter(f => f.name !== file.name)
- }
- : stream
- );
- const manifestText = stringifyKeepManifest(updatedManifest);
- return this.collectionService.update(collectionUuid, { manifestText });
- }
-}