|
- import makeArvadosRequest from 'make-arvados-request';
- import arvadosTypeName from 'arvados-type-name';
-
- function fetchObjectParents(arvHost, arvToken, uuid) {
- let parents = [];
-
- let cb = xhr => {
- let objectType = arvadosTypeName(xhr.response['uuid'].split('-')[1]);
-
- let item = {
- 'uuid': xhr.response['uuid']
- };
-
- if (objectType === 'user') {
- item['name'] = xhr.response['first_name'] + ' ' + xhr.response['last_name'];
-
- } else {
- item['name'] = xhr.response['name'];
- }
-
- if (objectType === 'group') {
- item['group_class'] = xhr.response['group_class'];
- }
-
- parents.push(item);
-
- if (!xhr.response['owner_uuid'] ||
- xhr.response['owner_uuid'].endsWith('-tpzed-000000000000000')) {
-
- return parents.reverse();
- }
-
- objectType = arvadosTypeName(xhr.response['owner_uuid'].split('-')[1]);
-
- return makeArvadosRequest(arvHost, arvToken,
- '/arvados/v1/' + objectType + 's' +
- '/' + xhr.response['owner_uuid']).then(cb);
- };
-
- let objectType = arvadosTypeName(uuid.split('-')[1]);
- let prom = makeArvadosRequest(arvHost, arvToken,
- '/arvados/v1/' + objectType + 's' +
- '/' + uuid);
- prom = prom.then(cb);
-
- return prom;
- }
-
- export default fetchObjectParents;
|