IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
1.1KB

  1. //
  2. // Copyright (C) Stanislaw Adaszewski, 2020
  3. // Contact: s.adaszewski@gmail.com
  4. // Website: https://adared.ch/wba
  5. // License: GNU Affero General Public License, Version 3
  6. //
  7. import makeArvadosRequest from 'make-arvados-request';
  8. import arvadosTypeName from 'arvados-type-name';
  9. function wbCopyCollection(arvHost, arvToken, uuid, newOwnerUuid) {
  10. const typeName = arvadosTypeName(uuid);
  11. if (typeName !== 'collection')
  12. throw Error('Specified UUID does not refer to a collection');
  13. let prom = makeArvadosRequest(arvHost, arvToken,
  14. '/arvados/v1/collections/' + uuid);
  15. prom = prom.then(xhr => {
  16. const { name, description, properties, portable_data_hash,
  17. manifest_text } = xhr.response;
  18. const dup = { name: name + ' (Copied at ' + new Date().toISOString() + ')',
  19. description, properties, portable_data_hash, manifest_text,
  20. owner_uuid: newOwnerUuid };
  21. return makeArvadosRequest(arvHost, arvToken,
  22. '/arvados/v1/collections', {
  23. 'method': 'POST',
  24. 'data': JSON.stringify(dup)
  25. });
  26. });
  27. return prom;
  28. }
  29. export default wbCopyCollection;