utils.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { WorkerSafeElectronService } from "@ente/shared/electron/service";
  2. import {
  3. getLocalSentryUserID,
  4. setLocalSentryUserID,
  5. } from "@ente/shared/storage/localStorage/helpers";
  6. import { HttpStatusCode } from "axios";
  7. import isElectron from "is-electron";
  8. import { ApiError } from "../error";
  9. export async function getSentryUserID() {
  10. if (isElectron()) {
  11. return await WorkerSafeElectronService.getSentryUserID();
  12. } else {
  13. let anonymizeUserID = getLocalSentryUserID();
  14. if (!anonymizeUserID) {
  15. anonymizeUserID = makeID(6);
  16. setLocalSentryUserID(anonymizeUserID);
  17. }
  18. return anonymizeUserID;
  19. }
  20. }
  21. function makeID(length) {
  22. let result = "";
  23. const characters =
  24. "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  25. const charactersLength = characters.length;
  26. for (let i = 0; i < length; i++) {
  27. result += characters.charAt(
  28. Math.floor(Math.random() * charactersLength),
  29. );
  30. }
  31. return result;
  32. }
  33. export function isErrorUnnecessaryForSentry(error: any) {
  34. if (error?.message?.includes("Network Error")) {
  35. return true;
  36. } else if (
  37. error instanceof ApiError &&
  38. error.httpStatusCode === HttpStatusCode.Unauthorized
  39. ) {
  40. return true;
  41. }
  42. return false;
  43. }