IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

43 wiersze
1.2KB

  1. function makeArvadosRequest(arvHost, arvToken, endpoint, params={}) {
  2. const defaultParams = {
  3. 'method': 'GET',
  4. 'data': null,
  5. 'contentType': 'application/json;charset=utf-8',
  6. 'responseType': 'json',
  7. 'useSsl': true,
  8. 'requireToken': true
  9. };
  10. Object.keys(defaultParams).map(k => (params[k] =
  11. (k in params ? params[k] : defaultParams[k])));
  12. let { method, data, contentType, responseType, useSsl, requireToken } = params;
  13. if (!(arvHost && (arvToken || !requireToken)))
  14. return new Promise((accept, reject) => reject());
  15. let xhr = new XMLHttpRequest();
  16. xhr.open(method, (useSsl ? 'https://' : 'http://') + arvHost + endpoint);
  17. if (arvToken)
  18. xhr.setRequestHeader('Authorization', 'OAuth2 ' + arvToken);
  19. if (data !== null)
  20. xhr.setRequestHeader('Content-Type', contentType);
  21. xhr.responseType = responseType;
  22. let res = new Promise((accept, reject) => {
  23. xhr.onreadystatechange = () => {
  24. if (xhr.readyState !== 4)
  25. return;
  26. if (xhr.status !== 200)
  27. reject(xhr);
  28. else
  29. accept(xhr);
  30. };
  31. xhr.send(data);
  32. });
  33. return res;
  34. }
  35. export default makeArvadosRequest;