api.service.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var __rest = (this && this.__rest) || function (s, e) {
  11. var t = {};
  12. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
  13. t[p] = s[p];
  14. if (s != null && typeof Object.getOwnPropertySymbols === "function")
  15. for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  16. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
  17. t[p[i]] = s[p[i]];
  18. }
  19. return t;
  20. };
  21. import { HttpClient, } from '@novu/shared';
  22. export class ApiService {
  23. constructor(backendUrl) {
  24. this.backendUrl = backendUrl;
  25. this.isAuthenticated = false;
  26. this.httpClient = new HttpClient(backendUrl);
  27. }
  28. setAuthorizationToken(token) {
  29. this.httpClient.setAuthorizationToken(token);
  30. this.isAuthenticated = true;
  31. }
  32. disposeAuthorizationToken() {
  33. this.httpClient.disposeAuthorizationToken();
  34. this.isAuthenticated = false;
  35. }
  36. updateAction(messageId, executedType, status, payload) {
  37. return __awaiter(this, void 0, void 0, function* () {
  38. return yield this.httpClient.post(`/widgets/messages/${messageId}/actions/${executedType}`, {
  39. executedType,
  40. status,
  41. payload,
  42. });
  43. });
  44. }
  45. markMessageAs(messageId, mark) {
  46. return __awaiter(this, void 0, void 0, function* () {
  47. const markPayload = mark.seen === undefined && mark.read === undefined
  48. ? { seen: true }
  49. : mark;
  50. return yield this.httpClient.post(`/widgets/messages/markAs`, {
  51. messageId,
  52. mark: markPayload,
  53. });
  54. });
  55. }
  56. removeMessage(messageId) {
  57. return __awaiter(this, void 0, void 0, function* () {
  58. return yield this.httpClient.delete(`/widgets/messages/${messageId}`, {});
  59. });
  60. }
  61. removeMessages(messageIds) {
  62. return __awaiter(this, void 0, void 0, function* () {
  63. return yield this.httpClient.post(`/widgets/messages/bulk/delete`, {
  64. messageIds: messageIds,
  65. });
  66. });
  67. }
  68. removeAllMessages(feedId) {
  69. return __awaiter(this, void 0, void 0, function* () {
  70. const url = feedId
  71. ? `/widgets/messages?feedId=${feedId}`
  72. : `/widgets/messages`;
  73. return yield this.httpClient.delete(url);
  74. });
  75. }
  76. markAllMessagesAsRead(feedId) {
  77. return __awaiter(this, void 0, void 0, function* () {
  78. return yield this.httpClient.post(`/widgets/messages/read`, {
  79. feedId,
  80. });
  81. });
  82. }
  83. markAllMessagesAsSeen(feedId) {
  84. return __awaiter(this, void 0, void 0, function* () {
  85. return yield this.httpClient.post(`/widgets/messages/seen`, {
  86. feedId,
  87. });
  88. });
  89. }
  90. getNotificationsList(page, _a = {}) {
  91. var { payload } = _a, rest = __rest(_a, ["payload"]);
  92. return __awaiter(this, void 0, void 0, function* () {
  93. const payloadString = payload ? btoa(JSON.stringify(payload)) : undefined;
  94. return yield this.httpClient.getFullResponse(`/widgets/notifications/feed`, Object.assign({ page, payload: payloadString }, rest));
  95. });
  96. }
  97. initializeSession(appId, subscriberId, hmacHash = null) {
  98. return __awaiter(this, void 0, void 0, function* () {
  99. return yield this.httpClient.post(`/widgets/session/initialize`, {
  100. applicationIdentifier: appId,
  101. subscriberId: subscriberId,
  102. hmacHash,
  103. });
  104. });
  105. }
  106. postUsageLog(name, payload) {
  107. return __awaiter(this, void 0, void 0, function* () {
  108. return yield this.httpClient.post('/widgets/usage/log', {
  109. name: `[Widget] - ${name}`,
  110. payload,
  111. });
  112. });
  113. }
  114. getUnseenCount(query = {}) {
  115. return __awaiter(this, void 0, void 0, function* () {
  116. return yield this.httpClient.get('/widgets/notifications/unseen', query);
  117. });
  118. }
  119. getUnreadCount(query = {}) {
  120. return __awaiter(this, void 0, void 0, function* () {
  121. return yield this.httpClient.get('/widgets/notifications/unread', query);
  122. });
  123. }
  124. getTabCount(query = {}) {
  125. return __awaiter(this, void 0, void 0, function* () {
  126. return yield this.httpClient.get('/widgets/notifications/count', query);
  127. });
  128. }
  129. getOrganization() {
  130. return __awaiter(this, void 0, void 0, function* () {
  131. return this.httpClient.get('/widgets/organization');
  132. });
  133. }
  134. getUserPreference() {
  135. return __awaiter(this, void 0, void 0, function* () {
  136. return this.httpClient.get('/widgets/preferences');
  137. });
  138. }
  139. getUserGlobalPreference() {
  140. return __awaiter(this, void 0, void 0, function* () {
  141. return this.httpClient.get('/widgets/preferences/global');
  142. });
  143. }
  144. updateSubscriberPreference(templateId, channelType, enabled) {
  145. return __awaiter(this, void 0, void 0, function* () {
  146. return yield this.httpClient.patch(`/widgets/preferences/${templateId}`, {
  147. channel: { type: channelType, enabled },
  148. });
  149. });
  150. }
  151. updateSubscriberGlobalPreference(preferences, enabled) {
  152. return __awaiter(this, void 0, void 0, function* () {
  153. return yield this.httpClient.patch(`/widgets/preferences`, {
  154. preferences: preferences.map((preference) => (Object.assign(Object.assign({}, preference), { type: preference.channelType }))),
  155. enabled,
  156. });
  157. });
  158. }
  159. }