X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/be4d5a950e31200e907cd379cf9210a7c3dd8643..54e859c204c3952a8eaf96d2145dfa96c199b934:/src/services/collection-files-service/collection-files-service.ts diff --git a/src/services/collection-files-service/collection-files-service.ts b/src/services/collection-files-service/collection-files-service.ts index 3b320eb6..6f88a729 100644 --- a/src/services/collection-files-service/collection-files-service.ts +++ b/src/services/collection-files-service/collection-files-service.ts @@ -5,7 +5,8 @@ import { CollectionService } from "../collection-service/collection-service"; import { parseKeepManifestText, stringifyKeepManifest } from "./collection-manifest-parser"; import { mapManifestToCollectionFilesTree } from "./collection-manifest-mapper"; -import { CollectionFile } from "../../models/collection-file"; +import { CommonResourceService } from "~/services/common-service/common-resource-service"; +import * as _ from "lodash"; export class CollectionFilesService { @@ -26,19 +27,21 @@ export class CollectionFilesService { 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 + const updatedManifest = manifest.map( + stream => stream.name === file.path ? { ...stream, - files: stream.files.map(f => - f.name === file.name + files: stream.files.map( + f => f.name === file.name ? { ...f, name: newName } - : f) + : f + ) } : stream ); const manifestText = stringifyKeepManifest(updatedManifest); - return this.collectionService.update(collectionUuid, { ...collection, manifestText }); + const data = { ...collection, manifestText }; + return this.collectionService.update(collectionUuid, CommonResourceService.mapKeys(_.snakeCase)(data)); } async deleteFile(collectionUuid: string, file: { name: string, path: string }) { @@ -56,4 +59,10 @@ export class CollectionFilesService { return this.collectionService.update(collectionUuid, { manifestText }); } -} \ No newline at end of file + renameTest() { + const u = this.renameFile('qr1hi-4zz18-n0sx074erl4p0ph', { + name: 'extracted2.txt.png', + path: '' + }, 'extracted-new.txt.png'); + } +}