// // 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'; 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;