woleet.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright 2010-2020 Gildas Lormeau
  3. * contact : gildas.lormeau <at> gmail.com
  4. *
  5. * This file is part of SingleFile.
  6. *
  7. * The code in this file is free software: you can redistribute it and/or
  8. * modify it under the terms of the GNU Affero General Public License
  9. * (GNU AGPL) as published by the Free Software Foundation, either version 3
  10. * of the License, or (at your option) any later version.
  11. *
  12. * The code in this file is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
  15. * General Public License for more details.
  16. *
  17. * As additional permission under GNU AGPL version 3 section 7, you may
  18. * distribute UNMODIFIED VERSIONS OF THIS file without the copy of the GNU
  19. * AGPL normally required by section 4, provided you include this license
  20. * notice and a URL through which recipients can access the Corresponding
  21. * Source.
  22. */
  23. /* global fetch */
  24. const urlService = "https://api.woleet.io/v1/anchor";
  25. const apiKey = "";
  26. export {
  27. anchor
  28. };
  29. async function anchor(hash, userKey) {
  30. let bearer = userKey || apiKey;
  31. const response = await fetch(urlService, {
  32. method: "POST",
  33. headers: {
  34. "Accept": "application/json",
  35. "Content-Type": "application/json",
  36. "Authorization": "Bearer " + bearer
  37. },
  38. body: JSON.stringify({
  39. "name": hash,
  40. "hash": hash,
  41. "public": true
  42. })
  43. });
  44. if (response.status == 401) {
  45. const error = new Error("Your access token on Woleet is invalid. Go to __DOC_LINK__ to create your account.");
  46. error.link = "https://app.woleet.io/";
  47. throw error;
  48. } else if (response.status == 402) {
  49. const error = new Error("You have no more credits on Woleet. Go to __DOC_LINK__ to recharge them.");
  50. error.link = "https://app.woleet.io/";
  51. throw error;
  52. } else if (response.status >= 400) {
  53. throw new Error((response.statusText || ("Error " + response.status)) + " (Woleet)");
  54. }
  55. return response.json();
  56. }