qiscus-sdk-core 2.16.0 → 2.16.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,269 +1,145 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
- var _superagent = _interopRequireDefault(require("superagent"));
13
- var HttpAdapter = exports["default"] = /*#__PURE__*/function () {
14
- function HttpAdapter(_ref) {
15
- var baseURL = _ref.baseURL,
16
- AppId = _ref.AppId,
17
- userId = _ref.userId,
18
- version = _ref.version,
19
- getCustomHeader = _ref.getCustomHeader,
20
- expiredTokenAdapterGetter = _ref.expiredTokenAdapterGetter;
21
- (0, _classCallCheck2["default"])(this, HttpAdapter);
2
+ var __async = (__this, __arguments, generator) => {
3
+ return new Promise((resolve, reject) => {
4
+ var fulfilled = (value) => {
5
+ try {
6
+ step(generator.next(value));
7
+ } catch (e) {
8
+ reject(e);
9
+ }
10
+ };
11
+ var rejected = (value) => {
12
+ try {
13
+ step(generator.throw(value));
14
+ } catch (e) {
15
+ reject(e);
16
+ }
17
+ };
18
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
19
+ step((generator = generator.apply(__this, __arguments)).next());
20
+ });
21
+ };
22
+ const request = require("superagent");
23
+ class HttpAdapter {
24
+ constructor({
25
+ baseURL,
26
+ AppId,
27
+ userId,
28
+ version,
29
+ getCustomHeader,
30
+ expiredTokenAdapterGetter
31
+ }) {
22
32
  this.baseURL = baseURL;
23
33
  this.token = null;
24
34
  this.userId = userId;
25
35
  this.AppId = AppId;
26
36
  this.version = version;
27
37
  this.getCustomHeader = getCustomHeader;
28
- /** @type {() => import('./expired-token.js').ExpiredTokenAdapter} */
29
38
  this._expiredTokenAdapterGetter = expiredTokenAdapterGetter;
30
39
  }
31
- return (0, _createClass2["default"])(HttpAdapter, [{
32
- key: "setToken",
33
- value: function setToken(token) {
34
- this.token = token;
35
- }
36
- }, {
37
- key: "get",
38
- value: function get(path) {
39
- var _this = this;
40
- var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
41
- var options = arguments.length > 2 ? arguments[2] : undefined;
42
- return this._retryHelper(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
43
- var req;
44
- return _regenerator["default"].wrap(function (_context) {
45
- while (1) switch (_context.prev = _context.next) {
46
- case 0:
47
- req = _superagent["default"].get("".concat(_this.baseURL, "/").concat(path));
48
- if (options && options.baseURL) req = _superagent["default"].get("".concat(options.baseURL, "/").concat(path));
49
- req = _this.setupHeaders(req, headers);
50
- return _context.abrupt("return", req);
51
- case 1:
52
- case "end":
53
- return _context.stop();
54
- }
55
- }, _callee);
56
- })));
57
- }
58
- // eslint-disable-next-line
59
- }, {
60
- key: "get_request",
61
- value: function get_request(path) {
62
- var _this2 = this;
63
- return this._retryHelper(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
64
- var req;
65
- return _regenerator["default"].wrap(function (_context2) {
66
- while (1) switch (_context2.prev = _context2.next) {
67
- case 0:
68
- req = _superagent["default"].get("".concat(_this2.baseURL, "/").concat(path));
69
- req = _this2.setupHeaders(req, {});
70
- return _context2.abrupt("return", req);
71
- case 1:
72
- case "end":
73
- return _context2.stop();
74
- }
75
- }, _callee2);
76
- })));
77
- }
78
- }, {
79
- key: "post",
80
- value: function post(path) {
81
- var _this3 = this;
82
- var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
83
- var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
84
- return this._retryHelper(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
85
- var req;
86
- return _regenerator["default"].wrap(function (_context3) {
87
- while (1) switch (_context3.prev = _context3.next) {
88
- case 0:
89
- req = _superagent["default"].post("".concat(_this3.baseURL, "/").concat(path));
90
- req = _this3.setupHeaders(req, headers);
91
- return _context3.abrupt("return", req.send(body).set('Content-Type', 'application/x-www-form-urlencoded'));
92
- case 1:
93
- case "end":
94
- return _context3.stop();
95
- }
96
- }, _callee3);
97
- })));
40
+ setToken(token) {
41
+ this.token = token;
42
+ }
43
+ get(path, headers = {}, options) {
44
+ return this._retryHelper(() => __async(this, null, function* () {
45
+ var req = request.get(`${this.baseURL}/${path}`);
46
+ if (options && options.baseURL)
47
+ req = request.get(`${options.baseURL}/${path}`);
48
+ req = this.setupHeaders(req, headers);
49
+ return req;
50
+ }));
51
+ }
52
+ // eslint-disable-next-line
53
+ get_request(path) {
54
+ return this._retryHelper(() => __async(this, null, function* () {
55
+ let req = request.get(`${this.baseURL}/${path}`);
56
+ req = this.setupHeaders(req, {});
57
+ return req;
58
+ }));
59
+ }
60
+ post(path, body = {}, headers = {}) {
61
+ return this._retryHelper(() => __async(this, null, function* () {
62
+ let req = request.post(`${this.baseURL}/${path}`);
63
+ req = this.setupHeaders(req, headers);
64
+ return req.send(body).set("Content-Type", "application/x-www-form-urlencoded");
65
+ }));
66
+ }
67
+ // eslint-disable-next-line
68
+ post_json(path, body = {}, headers = {}) {
69
+ return this._retryHelper(() => __async(this, null, function* () {
70
+ let req = request.post(`${this.baseURL}/${path}`);
71
+ req = this.setupHeaders(req, headers);
72
+ req.send(body);
73
+ return req;
74
+ }));
75
+ }
76
+ put(path, body = {}, headers = {}) {
77
+ return this._retryHelper(() => __async(this, null, function* () {
78
+ let req = request.put(`${this.baseURL}/${path}`);
79
+ req = this.setupHeaders(req, headers);
80
+ return req.send(body).set("Content-Type", "application/x-www-form-urlencoded");
81
+ }));
82
+ }
83
+ patch(path, body = {}, headers = {}) {
84
+ return this._retryHelper(() => __async(this, null, function* () {
85
+ let req = request.patch(`${this.baseURL}/${path}`);
86
+ req = this.setupHeaders(req, headers);
87
+ return req.send(body).set("Content-Type", "application/x-www-form-urlencoded");
88
+ }));
89
+ }
90
+ del(path, body = {}, headers = {}) {
91
+ return this._retryHelper(() => __async(this, null, function* () {
92
+ let req = request.del(`${this.baseURL}/${path}`);
93
+ req = this.setupHeaders(req, headers);
94
+ return req.send(body).set("Content-Type", "application/json");
95
+ }));
96
+ }
97
+ setupHeaders(req, headers = {}) {
98
+ req.set("QISCUS-SDK-PLATFORM", "javascript");
99
+ if (this.AppId != null) {
100
+ req.set("QISCUS-SDK-APP-ID", `${this.AppId}`);
98
101
  }
99
-
100
- // eslint-disable-next-line
101
- }, {
102
- key: "post_json",
103
- value: function post_json(path) {
104
- var _this4 = this;
105
- var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
106
- var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
107
- return this._retryHelper(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
108
- var req;
109
- return _regenerator["default"].wrap(function (_context4) {
110
- while (1) switch (_context4.prev = _context4.next) {
111
- case 0:
112
- req = _superagent["default"].post("".concat(_this4.baseURL, "/").concat(path));
113
- req = _this4.setupHeaders(req, headers);
114
- req.send(body);
115
- return _context4.abrupt("return", req);
116
- case 1:
117
- case "end":
118
- return _context4.stop();
119
- }
120
- }, _callee4);
121
- })));
102
+ if (this.userId != null) {
103
+ req.set("QISCUS-SDK-USER-ID", `${this.userId}`);
122
104
  }
123
- }, {
124
- key: "put",
125
- value: function put(path) {
126
- var _this5 = this;
127
- var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
128
- var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
129
- return this._retryHelper(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
130
- var req;
131
- return _regenerator["default"].wrap(function (_context5) {
132
- while (1) switch (_context5.prev = _context5.next) {
133
- case 0:
134
- req = _superagent["default"].put("".concat(_this5.baseURL, "/").concat(path));
135
- req = _this5.setupHeaders(req, headers);
136
- return _context5.abrupt("return", req.send(body).set('Content-Type', 'application/x-www-form-urlencoded'));
137
- case 1:
138
- case "end":
139
- return _context5.stop();
140
- }
141
- }, _callee5);
142
- })));
105
+ if (this.token != null) {
106
+ req.set("QISCUS-SDK-TOKEN", `${this.token}`);
143
107
  }
144
- }, {
145
- key: "patch",
146
- value: function patch(path) {
147
- var _this6 = this;
148
- var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
149
- var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
150
- return this._retryHelper(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
151
- var req;
152
- return _regenerator["default"].wrap(function (_context6) {
153
- while (1) switch (_context6.prev = _context6.next) {
154
- case 0:
155
- req = _superagent["default"].patch("".concat(_this6.baseURL, "/").concat(path));
156
- req = _this6.setupHeaders(req, headers);
157
- return _context6.abrupt("return", req.send(body).set('Content-Type', 'application/x-www-form-urlencoded'));
158
- case 1:
159
- case "end":
160
- return _context6.stop();
161
- }
162
- }, _callee6);
163
- })));
108
+ if (this.version != null) {
109
+ req.set("QISCUS-SDK-VERSION", `${this.version}`);
164
110
  }
165
- }, {
166
- key: "del",
167
- value: function del(path) {
168
- var _this7 = this;
169
- var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
170
- var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
171
- return this._retryHelper(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
172
- var req;
173
- return _regenerator["default"].wrap(function (_context7) {
174
- while (1) switch (_context7.prev = _context7.next) {
175
- case 0:
176
- req = _superagent["default"].del("".concat(_this7.baseURL, "/").concat(path));
177
- req = _this7.setupHeaders(req, headers);
178
- return _context7.abrupt("return", req.send(body).set('Content-Type', 'application/json'));
179
- case 1:
180
- case "end":
181
- return _context7.stop();
182
- }
183
- }, _callee7);
184
- })));
111
+ if (this.getCustomHeader != null) {
112
+ const customHeaders = this.getCustomHeader();
113
+ Object.keys(customHeaders).filter((key) => customHeaders[key] != null).forEach((key) => {
114
+ req.set(key, customHeaders[key]);
115
+ });
185
116
  }
186
- }, {
187
- key: "setupHeaders",
188
- value: function setupHeaders(req) {
189
- var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
190
- req.set('QISCUS-SDK-PLATFORM', 'javascript');
191
- // let's give this default Authorization Header
192
- if (this.AppId != null) {
193
- req.set('QISCUS-SDK-APP-ID', "".concat(this.AppId));
194
- }
195
- if (this.userId != null) {
196
- req.set('QISCUS-SDK-USER-ID', "".concat(this.userId));
197
- }
198
- if (this.token != null) {
199
- req.set('QISCUS-SDK-TOKEN', "".concat(this.token));
200
- }
201
- if (this.version != null) {
202
- req.set('QISCUS-SDK-VERSION', "".concat(this.version));
203
- }
204
- if (this.getCustomHeader != null) {
205
- var customHeaders = this.getCustomHeader();
206
- Object.keys(customHeaders).filter(function (key) {
207
- return customHeaders[key] != null;
208
- }).forEach(function (key) {
209
- req.set(key, customHeaders[key]);
210
- });
211
- }
212
- // Return the req if no headers attached
213
- if (Object.keys(headers).length < 1) return req;
214
- // now let's process custom header
215
- for (var key in headers) {
216
- if (headers.hasOwnProperty(key)) req.set(key, headers[key]);
217
- }
218
- return req;
117
+ if (Object.keys(headers).length < 1) return req;
118
+ for (let key in headers) {
119
+ if (headers.hasOwnProperty(key)) req.set(key, headers[key]);
219
120
  }
220
-
221
- /**
222
- * @param {() => request.Request} fn
223
- * @returns {Promise<unknown>}
224
- */
225
- }, {
226
- key: "_retryHelper",
227
- value: (function () {
228
- var _retryHelper2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(fn) {
229
- var _err$response, _err$response2, _body$error, status, body, _t;
230
- return _regenerator["default"].wrap(function (_context8) {
231
- while (1) switch (_context8.prev = _context8.next) {
232
- case 0:
233
- _context8.prev = 0;
234
- _context8.next = 1;
235
- return fn();
236
- case 1:
237
- return _context8.abrupt("return", _context8.sent);
238
- case 2:
239
- _context8.prev = 2;
240
- _t = _context8["catch"](0);
241
- status = _t === null || _t === void 0 || (_err$response = _t.response) === null || _err$response === void 0 ? void 0 : _err$response.status;
242
- body = _t === null || _t === void 0 || (_err$response2 = _t.response) === null || _err$response2 === void 0 ? void 0 : _err$response2.body;
243
- if (!(status === 403 && ((_body$error = body.error) === null || _body$error === void 0 || (_body$error = _body$error.message) === null || _body$error === void 0 ? void 0 : _body$error.toLowerCase()) === 'unauthorized. token is expired')) {
244
- _context8.next = 5;
245
- break;
246
- }
247
- _context8.next = 3;
248
- return this._expiredTokenAdapterGetter().refreshAuthToken();
249
- case 3:
250
- _context8.next = 4;
251
- return fn();
252
- case 4:
253
- return _context8.abrupt("return", _context8.sent);
254
- case 5:
255
- throw _t;
256
- case 6:
257
- case "end":
258
- return _context8.stop();
259
- }
260
- }, _callee8, this, [[0, 2]]);
261
- }));
262
- function _retryHelper(_x) {
263
- return _retryHelper2.apply(this, arguments);
121
+ return req;
122
+ }
123
+ /**
124
+ * @param {() => request.Request} fn
125
+ * @returns {Promise<unknown>}
126
+ */
127
+ _retryHelper(fn) {
128
+ return __async(this, null, function* () {
129
+ var _a, _b, _c, _d;
130
+ try {
131
+ return yield fn();
132
+ } catch (err) {
133
+ const status = (_a = err == null ? void 0 : err.response) == null ? void 0 : _a.status;
134
+ const body = (_b = err == null ? void 0 : err.response) == null ? void 0 : _b.body;
135
+ if (status === 403 && ((_d = (_c = body.error) == null ? void 0 : _c.message) == null ? void 0 : _d.toLowerCase()) === "unauthorized. token is expired") {
136
+ yield this._expiredTokenAdapterGetter().refreshAuthToken();
137
+ return yield fn();
138
+ } else {
139
+ throw err;
140
+ }
264
141
  }
265
- return _retryHelper;
266
- }())
267
- }]);
268
- }();
269
- module.exports = exports.default;
142
+ });
143
+ }
144
+ }
145
+ module.exports = HttpAdapter;