api-helpers.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. export function formatApiCall(url, args) {
  2. const find = /\{.*?\}/g;
  3. const replace = (match) => {
  4. const key = match.replace(/\{|\}/g, "");
  5. return args[key] || "";
  6. };
  7. return url.replace(/\/+$/, "").replace(find, replace).replace(find,replace);
  8. }
  9. function getURLSearchParams(widget, endpoint) {
  10. const params = new URLSearchParams({
  11. type: widget.type,
  12. group: widget.service_group,
  13. service: widget.service_name,
  14. endpoint,
  15. });
  16. return params;
  17. }
  18. export function formatProxyUrlWithSegments(widget, endpoint, segments) {
  19. const params = getURLSearchParams(widget, endpoint);
  20. if (segments) {
  21. params.append("segments", JSON.stringify(segments));
  22. }
  23. return `/api/services/proxy?${params.toString()}`;
  24. }
  25. export function formatProxyUrl(widget, endpoint, queryParams) {
  26. const params = getURLSearchParams(widget, endpoint);
  27. if (queryParams) {
  28. params.append("query", JSON.stringify(queryParams));
  29. }
  30. return `/api/services/proxy?${params.toString()}`;
  31. }
  32. export function asJson(data) {
  33. if (data?.length > 0) {
  34. const json = JSON.parse(data.toString());
  35. return json;
  36. }
  37. return data;
  38. }
  39. export function jsonArrayTransform(data, transform) {
  40. const json = asJson(data);
  41. if (json instanceof Array) {
  42. return transform(json);
  43. }
  44. return json;
  45. }
  46. export function jsonArrayFilter(data, filter) {
  47. return jsonArrayTransform(data, (items) => items.filter(filter));
  48. }
  49. export function sanitizeErrorURL(errorURL) {
  50. // Dont display sensitive params on frontend
  51. const url = new URL(errorURL);
  52. ["apikey", "api_key", "token", "t"].forEach(key => {
  53. if (url.searchParams.has(key)) url.searchParams.set(key, "***")
  54. });
  55. return url.toString();
  56. }