function makeArvadosRequest(arvHost, arvToken, endpoint, method='GET', data=null, contentType='application/json;charset=utf-8', responseType='json') { let xhr = new XMLHttpRequest(); xhr.open(method, 'https://' + arvHost + endpoint); xhr.setRequestHeader('Authorization', 'OAuth2 ' + arvToken); if (data !== null) xhr.setRequestHeader('Content-Type', contentType); xhr.responseType = responseType; let res = new Promise((accept, reject) => { xhr.onreadystatechange = () => { if (xhr.readyState !== 4) return; if (xhr.status !== 200) reject(xhr); else accept(xhr); }; xhr.send(data); }); return res; } export default makeArvadosRequest;