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