// // Copyright (C) Stanislaw Adaszewski, 2020 // Contact: s.adaszewski@gmail.com // Website: https://adared.ch/wba // License: GNU Affero General Public License, Version 3 // import makeArvadosRequest from 'make-arvados-request'; import arvadosTypeName from 'arvados-type-name'; function wbCopyCollection(arvHost, arvToken, uuid, newOwnerUuid) { const typeName = arvadosTypeName(uuid); if (typeName !== 'collection') throw Error('Specified UUID does not refer to a collection'); let prom = makeArvadosRequest(arvHost, arvToken, '/arvados/v1/collections/' + uuid); prom = prom.then(xhr => { const { name, description, properties, portable_data_hash, manifest_text } = xhr.response; const dup = { name: name + ' (Copied at ' + new Date().toISOString() + ')', description, properties, portable_data_hash, manifest_text, owner_uuid: newOwnerUuid }; return makeArvadosRequest(arvHost, arvToken, '/arvados/v1/collections', { 'method': 'POST', 'data': JSON.stringify(dup) }); }); return prom; } export default wbCopyCollection;