// // 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'; import arvadosTypeName from 'arvados-type-name'; import arvadosObjectName from 'arvados-object-name'; function fetchObjectParents(arvHost, arvToken, uuid) { let parents = []; let cb = xhr => { const item = xhr.response.items[0]; if (!item) return parents.reverse(); item.name = arvadosObjectName(item); parents.push(item); if (!item.owner_uuid || item.owner_uuid.endsWith('-tpzed-000000000000000')) { return parents.reverse(); } const objectType = arvadosTypeName(item.owner_uuid); const filters = [ ['uuid', '=', item.owner_uuid] ]; return makeArvadosRequest(arvHost, arvToken, '/arvados/v1/' + objectType + 's' + '?filters=' + encodeURIComponent(JSON.stringify(filters))).then(cb); }; const objectType = arvadosTypeName(uuid); const filters = [ ['uuid', '=', uuid] ]; let prom = makeArvadosRequest(arvHost, arvToken, '/arvados/v1/' + objectType + 's' + '?filters=' + encodeURIComponent(JSON.stringify(filters))); prom = prom.then(cb); return prom; } export default fetchObjectParents;