|
12345678910111213141516171819202122232425 |
- 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;
|