@viewberapp/chat 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE +20 -20
  2. package/dist/API.d.ts +91 -91
  3. package/dist/API.js +241 -241
  4. package/dist/CachedChat.d.ts +64 -64
  5. package/dist/CachedChat.js +241 -241
  6. package/dist/Chat.d.ts +66 -66
  7. package/dist/Chat.js +270 -270
  8. package/dist/ChatError.d.ts +4 -4
  9. package/dist/ChatError.js +2 -2
  10. package/dist/ChatSubscription.d.ts +82 -82
  11. package/dist/ChatSubscription.js +128 -128
  12. package/dist/Message.d.ts +25 -25
  13. package/dist/Message.js +35 -35
  14. package/dist/OnlineUser.d.ts +8 -8
  15. package/dist/OnlineUser.js +9 -9
  16. package/dist/PendingMessage.d.ts +23 -23
  17. package/dist/PendingMessage.js +23 -23
  18. package/dist/index.d.ts +8 -8
  19. package/dist/index.js +27 -27
  20. package/dist/logger/ConsoleLogger.d.ts +8 -8
  21. package/dist/logger/ConsoleLogger.js +20 -20
  22. package/dist/logger/NullLogger.d.ts +8 -8
  23. package/dist/logger/NullLogger.js +10 -10
  24. package/dist/logger/RollbarLogger.d.ts +11 -11
  25. package/dist/logger/RollbarLogger.js +23 -23
  26. package/dist/logger/index.d.ts +12 -12
  27. package/dist/logger/index.js +12 -12
  28. package/dist/react/components/AdminMessage.d.ts +6 -6
  29. package/dist/react/components/AdminMessage.js +59 -59
  30. package/dist/react/components/ConnectionAndChannelStatusLabel.d.ts +7 -7
  31. package/dist/react/components/ConnectionAndChannelStatusLabel.js +59 -59
  32. package/dist/react/components/Message.d.ts +23 -23
  33. package/dist/react/components/Message.js +87 -87
  34. package/dist/react/components/MessageDateTime.d.ts +8 -8
  35. package/dist/react/components/MessageDateTime.js +31 -31
  36. package/dist/react/components/MessageList.d.ts +46 -46
  37. package/dist/react/components/MessageList.js +107 -107
  38. package/dist/react/components/MessageRow.d.ts +5 -5
  39. package/dist/react/components/MessageRow.js +34 -34
  40. package/dist/react/components/index.d.ts +6 -6
  41. package/dist/react/components/index.js +13 -13
  42. package/dist/react/index.d.ts +3 -3
  43. package/dist/react/index.js +16 -16
  44. package/dist/react/useAppointmentChat.d.ts +3 -3
  45. package/dist/react/useAppointmentChat.js +10 -10
  46. package/dist/react/useChat.d.ts +38 -38
  47. package/dist/react/useChat.js +125 -125
  48. package/dist/react/useRealtimeTotalUserUnreadChatMessages.d.ts +12 -12
  49. package/dist/react/useRealtimeTotalUserUnreadChatMessages.js +137 -137
  50. package/dist/util/getLatestMessage.d.ts +3 -3
  51. package/dist/util/getLatestMessage.js +17 -17
  52. package/dist/util/getLatestMessageId.d.ts +3 -0
  53. package/dist/util/getLatestMessageId.js +18 -0
  54. package/dist/util/getLatestMessageId.js.map +1 -0
  55. package/dist/util/groupMessages.d.ts +8 -8
  56. package/dist/util/groupMessages.js +30 -30
  57. package/dist/util/index.d.ts +4 -4
  58. package/dist/util/index.js +9 -9
  59. package/dist/util/isNil.d.ts +1 -1
  60. package/dist/util/isNil.js +7 -7
  61. package/dist/util/jwtTokenChanged.d.ts +1 -1
  62. package/dist/util/jwtTokenChanged.js +10 -10
  63. package/dist/util/useIsMounted.d.ts +1 -1
  64. package/dist/util/useIsMounted.js +13 -13
  65. package/package.json +2 -2
package/dist/API.js CHANGED
@@ -1,242 +1,242 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const axios_1 = __importDefault(require("axios"));
7
- const Message_1 = __importDefault(require("./Message"));
8
- class API {
9
- constructor(params) {
10
- this.getAblyToken = (chats) => new Promise((resolve, reject) => {
11
- this.axios.post(this.getChatAblyTokenRoute(), {
12
- chats
13
- }, {
14
- headers: this.constructHeaders(),
15
- }).then(response => {
16
- this.debugApiResponse('getAblyToken', response);
17
- resolve({ token: response.data.data });
18
- }).catch(err => {
19
- var _a, _b, _c, _d, _e, _f, _g, _h;
20
- this.debugApiError('getAblyToken', err);
21
- if (axios_1.default.isAxiosError(err)) {
22
- if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.data.code) === 'no_authorized_chats_given') {
23
- return resolve({ error: {
24
- message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'No authorized chats given.',
25
- code: 'no_authorized_chats_given'
26
- } });
27
- }
28
- else if (((_d = err.response) === null || _d === void 0 ? void 0 : _d.status) === 403) {
29
- return resolve({ error: {
30
- message: ((_f = (_e = err.response) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.message) || 'Unauthorized',
31
- code: 'unauthorized'
32
- } });
33
- }
34
- }
35
- return resolve({ error: {
36
- message: ((_h = (_g = err.response) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.message) || 'Error',
37
- code: 'error'
38
- } });
39
- });
40
- });
41
- this.getUserChatUnreadMessageCount = (params) => new Promise((resolve, reject) => {
42
- this.axios.get(this.getUserChatUnreadMessageCountRoute(), {
43
- headers: this.constructHeaders(),
44
- params: {
45
- appointment_id: params === null || params === void 0 ? void 0 : params.appointmentId,
46
- appointment_is_confirmed_for_viewing: (params === null || params === void 0 ? void 0 : params.appointmentIsConfirmedForViewing) != null
47
- ? (params.appointmentIsConfirmedForViewing ? 1 : 0)
48
- : undefined
49
- }
50
- }).then(response => {
51
- this.debugApiResponse('getUserChatUnreadMessageCount', response);
52
- resolve({ count: response.data.count });
53
- }).catch(err => {
54
- var _a, _b, _c, _d, _e;
55
- this.debugApiError('getUserChatUnreadMessageCount', err);
56
- if (axios_1.default.isAxiosError(err)) {
57
- if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
58
- return resolve({ error: {
59
- message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'Unauthorized',
60
- code: 'unauthorized'
61
- } });
62
- }
63
- }
64
- return resolve({ error: {
65
- message: ((_e = (_d = err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || 'Error',
66
- code: 'error'
67
- } });
68
- });
69
- });
70
- this.storeMessage = (chatId, message, options) => new Promise((resolve, reject) => {
71
- this.axios.post(this.getChatStoreMessageRoute(chatId), {
72
- message,
73
- is_admin_message: (options === null || options === void 0 ? void 0 : options.isAdminMessage)
74
- ? options.isAdminMessage
75
- : undefined
76
- }, {
77
- headers: this.constructHeaders(),
78
- }).then(response => {
79
- this.debugApiResponse('storeMessage', response);
80
- resolve({
81
- message: new Message_1.default({
82
- id: response.data.data.id,
83
- chatId: response.data.data.chat_id,
84
- message: response.data.data.message,
85
- senderId: response.data.data.sender_id,
86
- sender: response.data.data.sender,
87
- isAdminMessage: response.data.data.is_admin_message,
88
- createdAt: new Date(response.data.data.created_at),
89
- })
90
- });
91
- }).catch(err => {
92
- var _a, _b, _c, _d, _e;
93
- this.debugApiError('storeMessage', err);
94
- if (axios_1.default.isAxiosError(err) && ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
95
- return resolve({ error: {
96
- message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'Unauthorized',
97
- code: 'unauthorized'
98
- } });
99
- }
100
- return resolve({ error: {
101
- message: ((_e = (_d = err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || 'Error',
102
- code: 'error'
103
- } });
104
- });
105
- });
106
- this.getLatestMessages = (chatId) => new Promise((resolve, reject) => {
107
- this.axios.get(this.getChatMessagesRoute(chatId), {
108
- headers: this.constructHeaders(),
109
- }).then(response => {
110
- this.debugApiResponse('getLatestMessages', response);
111
- resolve({
112
- messages: response.data.data.map((m) => new Message_1.default({
113
- id: m.id,
114
- chatId: m.chat_id,
115
- message: m.message,
116
- senderId: m.sender_id,
117
- sender: m.sender,
118
- isAdminMessage: m.is_admin_message,
119
- createdAt: new Date(m.created_at)
120
- }))
121
- });
122
- }).catch(err => {
123
- var _a, _b, _c, _d, _e;
124
- this.debugApiError('getLatestMessages', err);
125
- if (axios_1.default.isAxiosError(err) && ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
126
- return resolve({ error: {
127
- message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'Unauthorized',
128
- code: 'unauthorized'
129
- } });
130
- }
131
- return resolve({ error: {
132
- message: ((_e = (_d = err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || 'Error',
133
- code: 'error'
134
- } });
135
- });
136
- });
137
- this.getChatIdFromAppointmentId = (appointmentId) => new Promise((resolve, reject) => {
138
- this.axios.get(this.getChatForAppointmentRoute(appointmentId), {
139
- headers: this.constructHeaders()
140
- }).then(response => {
141
- this.debugApiResponse('getChatIdFromAppointmentId', response);
142
- resolve({
143
- chatId: response.data.data.id,
144
- disabled_at: response.data.data.disabled_at
145
- });
146
- }).catch(err => {
147
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
148
- this.debugApiError('getChatIdFromAppointmentId', err);
149
- if (axios_1.default.isAxiosError(err) && ((_b = (_a = err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.code) === 'appointment_chat_restricted_viewing_lengths') {
150
- return resolve({ error: {
151
- message: ((_d = (_c = err.response) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.message) || 'The chat is not available because the appointment has chat restricted services.',
152
- code: 'appointment_chat_restricted_viewing_lengths'
153
- } });
154
- }
155
- else if (axios_1.default.isAxiosError(err) && ((_e = err.response) === null || _e === void 0 ? void 0 : _e.status) === 403) {
156
- return resolve({ error: {
157
- message: ((_g = (_f = err.response) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.message) || 'Unauthorized',
158
- code: 'unauthorized'
159
- } });
160
- }
161
- return resolve({ error: {
162
- message: ((_j = (_h = err.response) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.message) || 'Error',
163
- code: 'error'
164
- } });
165
- });
166
- });
167
- this.markChatMessagesReadUpTo = (chatId, message) => new Promise((resolve, reject) => {
168
- this.axios.post(this.markChatMessagesReadUpToRoute(chatId, message.id), undefined, {
169
- headers: this.constructHeaders(),
170
- }).then(response => {
171
- this.debugApiResponse('markChatMessagesReadUpTo', response);
172
- resolve({ error: undefined });
173
- }).catch(err => {
174
- var _a, _b, _c, _d, _e;
175
- this.debugApiError('markChatMessagesReadUpTo', err);
176
- if (axios_1.default.isAxiosError(err) && ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
177
- return resolve({ error: {
178
- message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'Unauthorized',
179
- code: 'unauthorized'
180
- } });
181
- }
182
- return resolve({ error: {
183
- message: ((_e = (_d = err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || 'Error',
184
- code: 'error'
185
- } });
186
- });
187
- });
188
- this.reportChat = (chatId, reason) => new Promise((resolve, reject) => {
189
- this.axios.post(this.getReportChatRoute(chatId), {
190
- reason,
191
- }, {
192
- headers: this.constructHeaders(),
193
- }).then(response => {
194
- resolve();
195
- }).catch(err => {
196
- this.debugApiError('reportChat', err);
197
- });
198
- });
199
- this.toggleChatEnabled = (chatId) => new Promise((resolve, reject) => {
200
- this.axios.post(this.getToggleChatEnabledRoute(chatId), {}, {
201
- headers: this.constructHeaders(),
202
- }).then(response => {
203
- resolve();
204
- }).catch(err => {
205
- this.debugApiError('toggleChatEnabled', err);
206
- });
207
- });
208
- this.debugApiResponse = (method, response) => {
209
- var _a;
210
- if ((_a = this.debug) === null || _a === void 0 ? void 0 : _a.apiResponses) {
211
- this.debugLogger.debug(`[API Response] [${method}()]`, response);
212
- }
213
- };
214
- this.debugApiError = (method, err) => {
215
- var _a;
216
- if ((_a = this.debug) === null || _a === void 0 ? void 0 : _a.apiErrors) {
217
- this.debugLogger.debug(`[Error] [${method}()]`, err);
218
- }
219
- };
220
- this.constructHeaders = () => {
221
- if (this.jwtToken) {
222
- return { 'Authorization': `Bearer ${this.jwtToken}` };
223
- }
224
- return undefined;
225
- };
226
- this.axios = params.axios;
227
- this.jwtToken = params.jwtToken;
228
- this.logger = params.logger;
229
- this.debugLogger = params.debugLogger;
230
- this.debug = params.debug;
231
- this.getReportChatRoute = params.getReportChatRoute;
232
- this.getChatMessagesRoute = params.getChatMessagesRoute;
233
- this.getChatAblyTokenRoute = params.getChatAblyTokenRoute;
234
- this.getChatStoreMessageRoute = params.getChatStoreMessageRoute;
235
- this.getToggleChatEnabledRoute = params.getToggleChatEnabledRoute;
236
- this.getChatForAppointmentRoute = params.getChatForAppointmentRoute;
237
- this.markChatMessagesReadUpToRoute = params.markChatMessagesReadUpToRoute;
238
- this.getUserChatUnreadMessageCountRoute = params.getUserChatUnreadMessageCountRoute;
239
- }
240
- }
241
- exports.default = API;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const axios_1 = __importDefault(require("axios"));
7
+ const Message_1 = __importDefault(require("./Message"));
8
+ class API {
9
+ constructor(params) {
10
+ this.getAblyToken = (chats) => new Promise((resolve, reject) => {
11
+ this.axios.post(this.getChatAblyTokenRoute(), {
12
+ chats
13
+ }, {
14
+ headers: this.constructHeaders(),
15
+ }).then(response => {
16
+ this.debugApiResponse('getAblyToken', response);
17
+ resolve({ token: response.data.data });
18
+ }).catch(err => {
19
+ var _a, _b, _c, _d, _e, _f, _g, _h;
20
+ this.debugApiError('getAblyToken', err);
21
+ if (axios_1.default.isAxiosError(err)) {
22
+ if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.data.code) === 'no_authorized_chats_given') {
23
+ return resolve({ error: {
24
+ message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'No authorized chats given.',
25
+ code: 'no_authorized_chats_given'
26
+ } });
27
+ }
28
+ else if (((_d = err.response) === null || _d === void 0 ? void 0 : _d.status) === 403) {
29
+ return resolve({ error: {
30
+ message: ((_f = (_e = err.response) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.message) || 'Unauthorized',
31
+ code: 'unauthorized'
32
+ } });
33
+ }
34
+ }
35
+ return resolve({ error: {
36
+ message: ((_h = (_g = err.response) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.message) || 'Error',
37
+ code: 'error'
38
+ } });
39
+ });
40
+ });
41
+ this.getUserChatUnreadMessageCount = (params) => new Promise((resolve, reject) => {
42
+ this.axios.get(this.getUserChatUnreadMessageCountRoute(), {
43
+ headers: this.constructHeaders(),
44
+ params: {
45
+ appointment_id: params === null || params === void 0 ? void 0 : params.appointmentId,
46
+ appointment_is_confirmed_for_viewing: (params === null || params === void 0 ? void 0 : params.appointmentIsConfirmedForViewing) != null
47
+ ? (params.appointmentIsConfirmedForViewing ? 1 : 0)
48
+ : undefined
49
+ }
50
+ }).then(response => {
51
+ this.debugApiResponse('getUserChatUnreadMessageCount', response);
52
+ resolve({ count: response.data.count });
53
+ }).catch(err => {
54
+ var _a, _b, _c, _d, _e;
55
+ this.debugApiError('getUserChatUnreadMessageCount', err);
56
+ if (axios_1.default.isAxiosError(err)) {
57
+ if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
58
+ return resolve({ error: {
59
+ message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'Unauthorized',
60
+ code: 'unauthorized'
61
+ } });
62
+ }
63
+ }
64
+ return resolve({ error: {
65
+ message: ((_e = (_d = err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || 'Error',
66
+ code: 'error'
67
+ } });
68
+ });
69
+ });
70
+ this.storeMessage = (chatId, message, options) => new Promise((resolve, reject) => {
71
+ this.axios.post(this.getChatStoreMessageRoute(chatId), {
72
+ message,
73
+ is_admin_message: (options === null || options === void 0 ? void 0 : options.isAdminMessage)
74
+ ? options.isAdminMessage
75
+ : undefined
76
+ }, {
77
+ headers: this.constructHeaders(),
78
+ }).then(response => {
79
+ this.debugApiResponse('storeMessage', response);
80
+ resolve({
81
+ message: new Message_1.default({
82
+ id: response.data.data.id,
83
+ chatId: response.data.data.chat_id,
84
+ message: response.data.data.message,
85
+ senderId: response.data.data.sender_id,
86
+ sender: response.data.data.sender,
87
+ isAdminMessage: response.data.data.is_admin_message,
88
+ createdAt: new Date(response.data.data.created_at),
89
+ })
90
+ });
91
+ }).catch(err => {
92
+ var _a, _b, _c, _d, _e;
93
+ this.debugApiError('storeMessage', err);
94
+ if (axios_1.default.isAxiosError(err) && ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
95
+ return resolve({ error: {
96
+ message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'Unauthorized',
97
+ code: 'unauthorized'
98
+ } });
99
+ }
100
+ return resolve({ error: {
101
+ message: ((_e = (_d = err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || 'Error',
102
+ code: 'error'
103
+ } });
104
+ });
105
+ });
106
+ this.getLatestMessages = (chatId) => new Promise((resolve, reject) => {
107
+ this.axios.get(this.getChatMessagesRoute(chatId), {
108
+ headers: this.constructHeaders(),
109
+ }).then(response => {
110
+ this.debugApiResponse('getLatestMessages', response);
111
+ resolve({
112
+ messages: response.data.data.map((m) => new Message_1.default({
113
+ id: m.id,
114
+ chatId: m.chat_id,
115
+ message: m.message,
116
+ senderId: m.sender_id,
117
+ sender: m.sender,
118
+ isAdminMessage: m.is_admin_message,
119
+ createdAt: new Date(m.created_at)
120
+ }))
121
+ });
122
+ }).catch(err => {
123
+ var _a, _b, _c, _d, _e;
124
+ this.debugApiError('getLatestMessages', err);
125
+ if (axios_1.default.isAxiosError(err) && ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
126
+ return resolve({ error: {
127
+ message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'Unauthorized',
128
+ code: 'unauthorized'
129
+ } });
130
+ }
131
+ return resolve({ error: {
132
+ message: ((_e = (_d = err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || 'Error',
133
+ code: 'error'
134
+ } });
135
+ });
136
+ });
137
+ this.getChatIdFromAppointmentId = (appointmentId) => new Promise((resolve, reject) => {
138
+ this.axios.get(this.getChatForAppointmentRoute(appointmentId), {
139
+ headers: this.constructHeaders()
140
+ }).then(response => {
141
+ this.debugApiResponse('getChatIdFromAppointmentId', response);
142
+ resolve({
143
+ chatId: response.data.data.id,
144
+ disabled_at: response.data.data.disabled_at
145
+ });
146
+ }).catch(err => {
147
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
148
+ this.debugApiError('getChatIdFromAppointmentId', err);
149
+ if (axios_1.default.isAxiosError(err) && ((_b = (_a = err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.code) === 'appointment_chat_restricted_viewing_lengths') {
150
+ return resolve({ error: {
151
+ message: ((_d = (_c = err.response) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.message) || 'The chat is not available because the appointment has chat restricted services.',
152
+ code: 'appointment_chat_restricted_viewing_lengths'
153
+ } });
154
+ }
155
+ else if (axios_1.default.isAxiosError(err) && ((_e = err.response) === null || _e === void 0 ? void 0 : _e.status) === 403) {
156
+ return resolve({ error: {
157
+ message: ((_g = (_f = err.response) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.message) || 'Unauthorized',
158
+ code: 'unauthorized'
159
+ } });
160
+ }
161
+ return resolve({ error: {
162
+ message: ((_j = (_h = err.response) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.message) || 'Error',
163
+ code: 'error'
164
+ } });
165
+ });
166
+ });
167
+ this.markChatMessagesReadUpTo = (chatId, message) => new Promise((resolve, reject) => {
168
+ this.axios.post(this.markChatMessagesReadUpToRoute(chatId, message.id), undefined, {
169
+ headers: this.constructHeaders(),
170
+ }).then(response => {
171
+ this.debugApiResponse('markChatMessagesReadUpTo', response);
172
+ resolve({ error: undefined });
173
+ }).catch(err => {
174
+ var _a, _b, _c, _d, _e;
175
+ this.debugApiError('markChatMessagesReadUpTo', err);
176
+ if (axios_1.default.isAxiosError(err) && ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
177
+ return resolve({ error: {
178
+ message: ((_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.message) || 'Unauthorized',
179
+ code: 'unauthorized'
180
+ } });
181
+ }
182
+ return resolve({ error: {
183
+ message: ((_e = (_d = err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || 'Error',
184
+ code: 'error'
185
+ } });
186
+ });
187
+ });
188
+ this.reportChat = (chatId, reason) => new Promise((resolve, reject) => {
189
+ this.axios.post(this.getReportChatRoute(chatId), {
190
+ reason,
191
+ }, {
192
+ headers: this.constructHeaders(),
193
+ }).then(response => {
194
+ resolve();
195
+ }).catch(err => {
196
+ this.debugApiError('reportChat', err);
197
+ });
198
+ });
199
+ this.toggleChatEnabled = (chatId) => new Promise((resolve, reject) => {
200
+ this.axios.post(this.getToggleChatEnabledRoute(chatId), {}, {
201
+ headers: this.constructHeaders(),
202
+ }).then(response => {
203
+ resolve();
204
+ }).catch(err => {
205
+ this.debugApiError('toggleChatEnabled', err);
206
+ });
207
+ });
208
+ this.debugApiResponse = (method, response) => {
209
+ var _a;
210
+ if ((_a = this.debug) === null || _a === void 0 ? void 0 : _a.apiResponses) {
211
+ this.debugLogger.debug(`[API Response] [${method}()]`, response);
212
+ }
213
+ };
214
+ this.debugApiError = (method, err) => {
215
+ var _a;
216
+ if ((_a = this.debug) === null || _a === void 0 ? void 0 : _a.apiErrors) {
217
+ this.debugLogger.debug(`[Error] [${method}()]`, err);
218
+ }
219
+ };
220
+ this.constructHeaders = () => {
221
+ if (this.jwtToken) {
222
+ return { 'Authorization': `Bearer ${this.jwtToken}` };
223
+ }
224
+ return undefined;
225
+ };
226
+ this.axios = params.axios;
227
+ this.jwtToken = params.jwtToken;
228
+ this.logger = params.logger;
229
+ this.debugLogger = params.debugLogger;
230
+ this.debug = params.debug;
231
+ this.getReportChatRoute = params.getReportChatRoute;
232
+ this.getChatMessagesRoute = params.getChatMessagesRoute;
233
+ this.getChatAblyTokenRoute = params.getChatAblyTokenRoute;
234
+ this.getChatStoreMessageRoute = params.getChatStoreMessageRoute;
235
+ this.getToggleChatEnabledRoute = params.getToggleChatEnabledRoute;
236
+ this.getChatForAppointmentRoute = params.getChatForAppointmentRoute;
237
+ this.markChatMessagesReadUpToRoute = params.markChatMessagesReadUpToRoute;
238
+ this.getUserChatUnreadMessageCountRoute = params.getUserChatUnreadMessageCountRoute;
239
+ }
240
+ }
241
+ exports.default = API;
242
242
  //# sourceMappingURL=API.js.map
@@ -1,64 +1,64 @@
1
- import Ably from 'ably';
2
- import API from "./API";
3
- import { Logger } from "./logger";
4
- import OnlineUser from "./OnlineUser";
5
- import { ChannelStatus, ConnectionStatus, DebugOptions } from './Chat';
6
- import PendingMessage from "./PendingMessage";
7
- import Message from "./Message";
8
- import ChatSubscription from "./ChatSubscription";
9
- import ChatError from './ChatError';
10
- export interface CachedChatParams {
11
- id: number;
12
- api: API;
13
- channel: Ably.Types.RealtimeChannelCallbacks;
14
- connectionStatus: ConnectionStatus;
15
- logger: Logger;
16
- debugLogger: Logger;
17
- debug?: DebugOptions;
18
- }
19
- export interface SendMessageOptions {
20
- isAdminMessage: boolean;
21
- }
22
- export declare type Messages = (Message | PendingMessage)[];
23
- export declare type GetLatestMessagesStatus = 'initialized' | 'fetching' | 'success' | 'failed';
24
- export default class CachedChat {
25
- private id;
26
- private api;
27
- messages: Messages;
28
- onlineUsers: OnlineUser[];
29
- private subscriptions;
30
- private channel;
31
- private connectionStatus;
32
- private channelStatus;
33
- private getLatestMessagesStatus;
34
- private logger;
35
- private debugLogger;
36
- private debug;
37
- private disabled_at;
38
- constructor({ id, api, channel, connectionStatus, logger, debugLogger, debug }: CachedChatParams);
39
- sendMessage(message: string, options?: SendMessageOptions): Promise<void>;
40
- reportChat(reason: string): Promise<void>;
41
- toggleChatEnabled(): Promise<void>;
42
- sendPendingMessage(pendingMessage: PendingMessage): Promise<void>;
43
- getLatestMessages(): void;
44
- markMessagesReadUpTo(message: Message): Promise<{
45
- error: ChatError | undefined;
46
- }>;
47
- setDisabledAt(disabled_at?: Date | null | undefined): void;
48
- getDisabledAt(): Date | null | undefined;
49
- addMessage(message: Message | PendingMessage): void;
50
- private replacePendingMessage;
51
- private updatePendingMessageStatus;
52
- addSubscription(subscription: ChatSubscription): void;
53
- getConnectionStatus(): ConnectionStatus;
54
- setConnectionStatus(status: ConnectionStatus): void;
55
- getChannelStatus(): ChannelStatus;
56
- private handleChannelStateChange;
57
- getGetLatestMessagesStatus(): GetLatestMessagesStatus;
58
- setGetLatestMessagesStatus(status: GetLatestMessagesStatus): void;
59
- detachChannel(callback: Ably.Types.errorCallback): void;
60
- private fireMessagesEventOnEachNonCancelledSubscription;
61
- private fireEventOnEachSubscription;
62
- cancelSubscription(subscription: ChatSubscription): void;
63
- cancelAllSubscriptions(): void;
64
- }
1
+ import Ably from 'ably';
2
+ import API from "./API";
3
+ import { Logger } from "./logger";
4
+ import OnlineUser from "./OnlineUser";
5
+ import { ChannelStatus, ConnectionStatus, DebugOptions } from './Chat';
6
+ import PendingMessage from "./PendingMessage";
7
+ import Message from "./Message";
8
+ import ChatSubscription from "./ChatSubscription";
9
+ import ChatError from './ChatError';
10
+ export interface CachedChatParams {
11
+ id: number;
12
+ api: API;
13
+ channel: Ably.Types.RealtimeChannelCallbacks;
14
+ connectionStatus: ConnectionStatus;
15
+ logger: Logger;
16
+ debugLogger: Logger;
17
+ debug?: DebugOptions;
18
+ }
19
+ export interface SendMessageOptions {
20
+ isAdminMessage: boolean;
21
+ }
22
+ export declare type Messages = (Message | PendingMessage)[];
23
+ export declare type GetLatestMessagesStatus = 'initialized' | 'fetching' | 'success' | 'failed';
24
+ export default class CachedChat {
25
+ private id;
26
+ private api;
27
+ messages: Messages;
28
+ onlineUsers: OnlineUser[];
29
+ private subscriptions;
30
+ private channel;
31
+ private connectionStatus;
32
+ private channelStatus;
33
+ private getLatestMessagesStatus;
34
+ private logger;
35
+ private debugLogger;
36
+ private debug;
37
+ private disabled_at;
38
+ constructor({ id, api, channel, connectionStatus, logger, debugLogger, debug }: CachedChatParams);
39
+ sendMessage(message: string, options?: SendMessageOptions): Promise<void>;
40
+ reportChat(reason: string): Promise<void>;
41
+ toggleChatEnabled(): Promise<void>;
42
+ sendPendingMessage(pendingMessage: PendingMessage): Promise<void>;
43
+ getLatestMessages(): void;
44
+ markMessagesReadUpTo(message: Message): Promise<{
45
+ error: ChatError | undefined;
46
+ }>;
47
+ setDisabledAt(disabled_at?: Date | null | undefined): void;
48
+ getDisabledAt(): Date | null | undefined;
49
+ addMessage(message: Message | PendingMessage): void;
50
+ private replacePendingMessage;
51
+ private updatePendingMessageStatus;
52
+ addSubscription(subscription: ChatSubscription): void;
53
+ getConnectionStatus(): ConnectionStatus;
54
+ setConnectionStatus(status: ConnectionStatus): void;
55
+ getChannelStatus(): ChannelStatus;
56
+ private handleChannelStateChange;
57
+ getGetLatestMessagesStatus(): GetLatestMessagesStatus;
58
+ setGetLatestMessagesStatus(status: GetLatestMessagesStatus): void;
59
+ detachChannel(callback: Ably.Types.errorCallback): void;
60
+ private fireMessagesEventOnEachNonCancelledSubscription;
61
+ private fireEventOnEachSubscription;
62
+ cancelSubscription(subscription: ChatSubscription): void;
63
+ cancelAllSubscriptions(): void;
64
+ }