@expressms/smartapp-sdk 1.7.0-alpha.0 → 1.7.0-alpha.1

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.
@@ -1,4 +1,4 @@
1
- import { SubscriptionEventType, SubscriptionPayload } from '../../types';
1
+ import { StatusResponse, SubscriptionEventType, SubscriptionPayload } from '../../types';
2
2
  /**
3
3
  * Subscribe to special client events
4
4
  * @param eventType Event from SubscriptionEventType enum to be subscribed
@@ -10,9 +10,7 @@ declare const subscribeClientEvents: ({ eventType, payload, callback, }: {
10
10
  eventType: SubscriptionEventType;
11
11
  payload?: SubscriptionPayload | undefined;
12
12
  callback?: Function | undefined;
13
- }) => Promise<{
14
- status: string;
15
- }>;
13
+ }) => Promise<StatusResponse>;
16
14
  /**
17
15
  * Unsubscribe from previously subscribed client events
18
16
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
@@ -24,7 +22,5 @@ declare const unsubscribeClientEvents: ({ eventType, payload, callback, }: {
24
22
  eventType: SubscriptionEventType;
25
23
  payload?: SubscriptionPayload | undefined;
26
24
  callback?: Function | undefined;
27
- }) => Promise<{
28
- status: string;
29
- }>;
25
+ }) => Promise<StatusResponse>;
30
26
  export { subscribeClientEvents, unsubscribeClientEvents };
@@ -8,6 +8,14 @@ const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"))
8
8
  const types_1 = require("../../types");
9
9
  const subscriptions = [];
10
10
  let bridgeEventListenerInstalled = false;
11
+ const composeResponse = (status, errorCode) => {
12
+ return {
13
+ payload: {
14
+ status,
15
+ errorCode
16
+ },
17
+ };
18
+ };
11
19
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
20
  const getSubscriptionId = (eventType, payload) => {
13
21
  const sourceId = (payload === null || payload === void 0 ? void 0 : payload.id) ? '-' + (payload === null || payload === void 0 ? void 0 : payload.id) : '';
@@ -36,25 +44,27 @@ const installBridgeEventListener = () => {
36
44
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
37
45
  */
38
46
  const subscribeClientEvents = ({ eventType, payload, callback, }) => {
39
- const successResponse = { status: types_1.STATUS.SUCCESS };
40
47
  // No need to subscribe event twice on client
41
48
  if (isAnySubscriptions(eventType, payload)) {
42
49
  const id = getSubscriptionId(eventType, payload);
43
50
  subscriptions.push({ id, callback });
44
- return Promise.resolve(successResponse);
51
+ return Promise.resolve(composeResponse(types_1.STATUS.SUCCESS));
45
52
  }
46
53
  if (!smartapp_bridge_1.default)
47
- return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
54
+ return Promise.reject(composeResponse(types_1.STATUS.ERROR, types_1.ERROR_CODES.NO_BRIDGE));
48
55
  return smartapp_bridge_1.default
49
56
  .sendClientEvent({
50
57
  method: types_1.METHODS.SUBSCRIBE_CLIENT_EVENTS,
51
58
  params: Object.assign({ event: eventType }, payload),
52
59
  })
53
- .then(() => {
60
+ .then((event) => {
61
+ const response = event;
54
62
  const id = getSubscriptionId(eventType, payload);
63
+ if (response.payload.status !== types_1.STATUS.SUCCESS)
64
+ return response;
55
65
  installBridgeEventListener();
56
66
  subscriptions.push({ id, callback });
57
- return successResponse;
67
+ return response;
58
68
  });
59
69
  };
60
70
  exports.subscribeClientEvents = subscribeClientEvents;
@@ -66,23 +76,22 @@ exports.subscribeClientEvents = subscribeClientEvents;
66
76
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
67
77
  */
68
78
  const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
69
- const successResponse = { status: types_1.STATUS.SUCCESS };
70
79
  const id = getSubscriptionId(eventType, payload);
71
80
  const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
72
81
  if (!smartapp_bridge_1.default)
73
82
  return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
74
83
  if (index == -1)
75
- return Promise.reject(types_1.ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
84
+ return Promise.resolve(composeResponse(types_1.STATUS.ERROR, types_1.ERROR_CODES.SUBSCRIPTION_NOT_FOUND));
76
85
  subscriptions.splice(index, 1);
77
86
  // Send unsubscribe to client only at last subscription
78
87
  if (isAnySubscriptions(eventType, payload))
79
- return Promise.resolve(successResponse);
88
+ return Promise.resolve(composeResponse(types_1.STATUS.SUCCESS));
80
89
  return smartapp_bridge_1.default
81
90
  .sendClientEvent({
82
91
  method: types_1.METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
83
92
  params: Object.assign({ event: eventType }, payload),
84
93
  })
85
- .then(() => successResponse);
94
+ .then((event) => event);
86
95
  };
87
96
  exports.unsubscribeClientEvents = unsubscribeClientEvents;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBc0c7QUFFdEcsTUFBTSxhQUFhLEdBQStDLEVBQUUsQ0FBQTtBQUNwRSxJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4Qyw4REFBOEQ7QUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsT0FBYSxFQUFFLEVBQUU7SUFDNUUsTUFBTSxRQUFRLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDckQsTUFBTSxVQUFVLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLElBQUksQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFM0QsT0FBTyxHQUFHLFNBQVMsR0FBRyxVQUFVLEdBQUcsUUFBUSxFQUFFLENBQUE7QUFDL0MsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWdDLEVBQUUsT0FBNkIsRUFBRSxFQUFFO0lBQzdGLE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUVoRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ2hELENBQUMsQ0FBQTtBQUVELE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxF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
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBc0g7QUFFdEgsTUFBTSxhQUFhLEdBQStDLEVBQUUsQ0FBQTtBQUNwRSxJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQWMsRUFBRSxTQUFrQixFQUFrQixFQUFFO0lBQzdFLE9BQU87UUFDTCxPQUFPLEVBQUU7WUFDUCxNQUFNO1lBQ04sU0FBUztTQUNWO0tBQ2dCLENBQUE7QUFDckIsQ0FBQyxDQUFBO0FBRUQsOERBQThEO0FBQzlELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLE9BQWEsRUFBRSxFQUFFO0lBQzVFLE1BQU0sUUFBUSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxFQUFFLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3JELE1BQU0sVUFBVSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxJQUFJLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBRTNELE9BQU8sR0FBRyxTQUFTLEdBQUcsVUFBVSxHQUFHLFFBQVEsRUFBRSxDQUFBO0FBQy9DLENBQUMsQ0FBQTtBQUVELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLE9BQTZCLEVBQUUsRUFBRTtJQUM3RixNQUFNLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7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
@@ -42,6 +42,8 @@ export interface SearchLocalPhonebookResponse extends EmitterEventPayload {
42
42
  export type GetUnreadCounterResponse = {
43
43
  ref: string;
44
44
  payload: {
45
+ status: STATUS;
46
+ errorCode?: string | null;
45
47
  unreadCounter: number;
46
48
  };
47
49
  };
@@ -1,4 +1,4 @@
1
- import { SubscriptionEventType, SubscriptionPayload } from '../../types';
1
+ import { StatusResponse, SubscriptionEventType, SubscriptionPayload } from '../../types';
2
2
  /**
3
3
  * Subscribe to special client events
4
4
  * @param eventType Event from SubscriptionEventType enum to be subscribed
@@ -10,9 +10,7 @@ declare const subscribeClientEvents: ({ eventType, payload, callback, }: {
10
10
  eventType: SubscriptionEventType;
11
11
  payload?: SubscriptionPayload | undefined;
12
12
  callback?: Function | undefined;
13
- }) => Promise<{
14
- status: string;
15
- }>;
13
+ }) => Promise<StatusResponse>;
16
14
  /**
17
15
  * Unsubscribe from previously subscribed client events
18
16
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
@@ -24,7 +22,5 @@ declare const unsubscribeClientEvents: ({ eventType, payload, callback, }: {
24
22
  eventType: SubscriptionEventType;
25
23
  payload?: SubscriptionPayload | undefined;
26
24
  callback?: Function | undefined;
27
- }) => Promise<{
28
- status: string;
29
- }>;
25
+ }) => Promise<StatusResponse>;
30
26
  export { subscribeClientEvents, unsubscribeClientEvents };
@@ -2,6 +2,14 @@ import bridge from '@expressms/smartapp-bridge';
2
2
  import { ERROR_CODES, METHODS, STATUS } from '../../types';
3
3
  const subscriptions = [];
4
4
  let bridgeEventListenerInstalled = false;
5
+ const composeResponse = (status, errorCode) => {
6
+ return {
7
+ payload: {
8
+ status,
9
+ errorCode
10
+ },
11
+ };
12
+ };
5
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
14
  const getSubscriptionId = (eventType, payload) => {
7
15
  const sourceId = payload?.id ? '-' + payload?.id : '';
@@ -30,15 +38,14 @@ const installBridgeEventListener = () => {
30
38
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
31
39
  */
32
40
  const subscribeClientEvents = ({ eventType, payload, callback, }) => {
33
- const successResponse = { status: STATUS.SUCCESS };
34
41
  // No need to subscribe event twice on client
35
42
  if (isAnySubscriptions(eventType, payload)) {
36
43
  const id = getSubscriptionId(eventType, payload);
37
44
  subscriptions.push({ id, callback });
38
- return Promise.resolve(successResponse);
45
+ return Promise.resolve(composeResponse(STATUS.SUCCESS));
39
46
  }
40
47
  if (!bridge)
41
- return Promise.reject(ERROR_CODES.NO_BRIDGE);
48
+ return Promise.reject(composeResponse(STATUS.ERROR, ERROR_CODES.NO_BRIDGE));
42
49
  return bridge
43
50
  .sendClientEvent({
44
51
  method: METHODS.SUBSCRIBE_CLIENT_EVENTS,
@@ -47,11 +54,14 @@ const subscribeClientEvents = ({ eventType, payload, callback, }) => {
47
54
  ...payload,
48
55
  },
49
56
  })
50
- .then(() => {
57
+ .then((event) => {
58
+ const response = event;
51
59
  const id = getSubscriptionId(eventType, payload);
60
+ if (response.payload.status !== STATUS.SUCCESS)
61
+ return response;
52
62
  installBridgeEventListener();
53
63
  subscriptions.push({ id, callback });
54
- return successResponse;
64
+ return response;
55
65
  });
56
66
  };
57
67
  /**
@@ -62,17 +72,16 @@ const subscribeClientEvents = ({ eventType, payload, callback, }) => {
62
72
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
63
73
  */
64
74
  const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
65
- const successResponse = { status: STATUS.SUCCESS };
66
75
  const id = getSubscriptionId(eventType, payload);
67
76
  const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
68
77
  if (!bridge)
69
78
  return Promise.reject(ERROR_CODES.NO_BRIDGE);
70
79
  if (index == -1)
71
- return Promise.reject(ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
80
+ return Promise.resolve(composeResponse(STATUS.ERROR, ERROR_CODES.SUBSCRIPTION_NOT_FOUND));
72
81
  subscriptions.splice(index, 1);
73
82
  // Send unsubscribe to client only at last subscription
74
83
  if (isAnySubscriptions(eventType, payload))
75
- return Promise.resolve(successResponse);
84
+ return Promise.resolve(composeResponse(STATUS.SUCCESS));
76
85
  return bridge
77
86
  .sendClientEvent({
78
87
  method: METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
@@ -81,7 +90,7 @@ const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
81
90
  ...payload,
82
91
  },
83
92
  })
84
- .then(() => successResponse);
93
+ .then((event) => event);
85
94
  };
86
95
  export { subscribeClientEvents, unsubscribeClientEvents };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLDRCQUE0QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBOEMsTUFBTSxhQUFhLENBQUE7QUFFdEcsTUFBTSxhQUFhLEdBQStDLEVBQUUsQ0FBQTtBQUNwRSxJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4Qyw4REFBOEQ7QUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsT0FBYSxFQUFFLEVBQUU7SUFDNUUsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNyRCxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBRTNELE9BQU8sR0FBRyxTQUFTLEdBQUcsVUFBVSxHQUFHLFFBQVEsRUFBRSxDQUFBO0FBQy9DLENBQUMsQ0FBQTtBQUVELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLE9BQTZCLEVBQUUsRUFBRTtJQUM3RixNQUFNLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFFaEQsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUNoRCxDQUFDLENBQUE7QUFFRCxNQUFNLDBCQUEwQixHQUFHLEdBQUcsRUFBRTtJQUN0QyxJQUFJLDRCQUE0QixJQUFJLENBQUMsTUFBTTtRQUFF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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLDRCQUE0QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBOEQsTUFBTSxhQUFhLENBQUE7QUFFdEgsTUFBTSxhQUFhLEdBQStDLEVBQUUsQ0FBQTtBQUNwRSxJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQWMsRUFBRSxTQUFrQixFQUFrQixFQUFFO0lBQzdFLE9BQU87UUFDTCxPQUFPLEVBQUU7WUFDUCxNQUFNO1lBQ04sU0FBUztTQUNWO0tBQ2dCLENBQUE7QUFDckIsQ0FBQyxDQUFBO0FBRUQsOERBQThEO0FBQzlELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLE9BQWEsRUFBRSxFQUFFO0lBQzVFLE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDckQsTUFBTSxVQUFVLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUUzRCxPQUFPLEdBQUcsU0FBUyxHQUFHLFVBQVUsR0FBRyxRQUFRLEVBQUUsQ0FBQTtBQUMvQyxDQUFDLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsU0FBZ0MsRUFBRSxPQUE2QixFQUFFLEVBQUU7SUFDN0YsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBRWhELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMs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
@@ -42,6 +42,8 @@ export interface SearchLocalPhonebookResponse extends EmitterEventPayload {
42
42
  export type GetUnreadCounterResponse = {
43
43
  ref: string;
44
44
  payload: {
45
+ status: STATUS;
46
+ errorCode?: string | null;
45
47
  unreadCounter: number;
46
48
  };
47
49
  };
@@ -1986,6 +1986,14 @@
1986
1986
 
1987
1987
  const subscriptions = [];
1988
1988
  let bridgeEventListenerInstalled = false;
1989
+ const composeResponse = (status, errorCode) => {
1990
+ return {
1991
+ payload: {
1992
+ status,
1993
+ errorCode
1994
+ },
1995
+ };
1996
+ };
1989
1997
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1990
1998
  const getSubscriptionId = (eventType, payload) => {
1991
1999
  const sourceId = payload?.id ? '-' + payload?.id : '';
@@ -2014,15 +2022,14 @@
2014
2022
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
2015
2023
  */
2016
2024
  const subscribeClientEvents = ({ eventType, payload, callback, }) => {
2017
- const successResponse = { status: STATUS.SUCCESS };
2018
2025
  // No need to subscribe event twice on client
2019
2026
  if (isAnySubscriptions(eventType, payload)) {
2020
2027
  const id = getSubscriptionId(eventType, payload);
2021
2028
  subscriptions.push({ id, callback });
2022
- return Promise.resolve(successResponse);
2029
+ return Promise.resolve(composeResponse(STATUS.SUCCESS));
2023
2030
  }
2024
2031
  if (!bridge)
2025
- return Promise.reject(ERROR_CODES.NO_BRIDGE);
2032
+ return Promise.reject(composeResponse(STATUS.ERROR, ERROR_CODES.NO_BRIDGE));
2026
2033
  return bridge
2027
2034
  .sendClientEvent({
2028
2035
  method: METHODS.SUBSCRIBE_CLIENT_EVENTS,
@@ -2031,11 +2038,14 @@
2031
2038
  ...payload,
2032
2039
  },
2033
2040
  })
2034
- .then(() => {
2041
+ .then((event) => {
2042
+ const response = event;
2035
2043
  const id = getSubscriptionId(eventType, payload);
2044
+ if (response.payload.status !== STATUS.SUCCESS)
2045
+ return response;
2036
2046
  installBridgeEventListener();
2037
2047
  subscriptions.push({ id, callback });
2038
- return successResponse;
2048
+ return response;
2039
2049
  });
2040
2050
  };
2041
2051
  /**
@@ -2046,17 +2056,16 @@
2046
2056
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
2047
2057
  */
2048
2058
  const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
2049
- const successResponse = { status: STATUS.SUCCESS };
2050
2059
  const id = getSubscriptionId(eventType, payload);
2051
2060
  const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
2052
2061
  if (!bridge)
2053
2062
  return Promise.reject(ERROR_CODES.NO_BRIDGE);
2054
2063
  if (index == -1)
2055
- return Promise.reject(ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
2064
+ return Promise.resolve(composeResponse(STATUS.ERROR, ERROR_CODES.SUBSCRIPTION_NOT_FOUND));
2056
2065
  subscriptions.splice(index, 1);
2057
2066
  // Send unsubscribe to client only at last subscription
2058
2067
  if (isAnySubscriptions(eventType, payload))
2059
- return Promise.resolve(successResponse);
2068
+ return Promise.resolve(composeResponse(STATUS.SUCCESS));
2060
2069
  return bridge
2061
2070
  .sendClientEvent({
2062
2071
  method: METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
@@ -2065,7 +2074,7 @@
2065
2074
  ...payload,
2066
2075
  },
2067
2076
  })
2068
- .then(() => successResponse);
2077
+ .then((event) => event);
2069
2078
  };
2070
2079
 
2071
2080
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expressms/smartapp-sdk",
3
- "version": "1.7.0-alpha.0",
3
+ "version": "1.7.0-alpha.1",
4
4
  "description": "Smartapp SDK",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",