roboto-js 1.0.15 → 1.0.17

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.
@@ -30,12 +30,28 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
30
30
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
31
31
  var Roboto = exports["default"] = /*#__PURE__*/function () {
32
32
  function Roboto() {
33
+ var proxyReq = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
33
34
  _classCallCheck(this, Roboto);
34
35
  var isBrowser = typeof window !== "undefined";
35
36
  this.config = {
36
37
  apiKey: isBrowser ? process.env.NEXT_PUBLIC_ROBOTO_API_KEY : process.env.ROBOTO_API_KEY,
37
38
  baseUrl: 'https://' + (isBrowser ? process.env.NEXT_PUBLIC_ROBOTO_HOST : process.env.ROBOTO_HOST)
38
39
  };
40
+
41
+ // Check if a request object is provided
42
+ if (proxyReq && proxyReq.headers) {
43
+ var authtoken = proxyReq.headers.authtoken;
44
+ var accesskey = proxyReq.headers.accesskey;
45
+ // Optionally add more headers as needed
46
+ if (authtoken) {
47
+ this.config.authtoken = authtoken; // Set the authtoken in the config
48
+ }
49
+
50
+ if (accesskey) {
51
+ this.config.accesskey = accesskey; // Set the accesskey in the config
52
+ }
53
+ }
54
+
39
55
  this.api = _rbt_api["default"].configure(this.config);
40
56
  if (isBrowser) {
41
57
  this.api.initLocalDb();
@@ -161,6 +177,44 @@ var Roboto = exports["default"] = /*#__PURE__*/function () {
161
177
  }
162
178
  return query;
163
179
  }()
180
+ }, {
181
+ key: "get",
182
+ value: function () {
183
+ var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(endpoint, params) {
184
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
185
+ while (1) switch (_context7.prev = _context7.next) {
186
+ case 0:
187
+ return _context7.abrupt("return", this.api.get(endpoint, params));
188
+ case 1:
189
+ case "end":
190
+ return _context7.stop();
191
+ }
192
+ }, _callee7, this);
193
+ }));
194
+ function get(_x8, _x9) {
195
+ return _get.apply(this, arguments);
196
+ }
197
+ return get;
198
+ }()
199
+ }, {
200
+ key: "post",
201
+ value: function () {
202
+ var _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(endpoint, data) {
203
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
204
+ while (1) switch (_context8.prev = _context8.next) {
205
+ case 0:
206
+ return _context8.abrupt("return", this.api.post(endpoint, data));
207
+ case 1:
208
+ case "end":
209
+ return _context8.stop();
210
+ }
211
+ }, _callee8, this);
212
+ }));
213
+ function post(_x10, _x11) {
214
+ return _post.apply(this, arguments);
215
+ }
216
+ return post;
217
+ }()
164
218
  }]);
165
219
  return Roboto;
166
220
  }();
@@ -12,6 +12,9 @@ var _lodash = _interopRequireDefault(require("lodash"));
12
12
  var _idb = require("idb");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
14
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
15
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
18
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
16
19
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
17
20
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -85,7 +88,9 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
85
88
  this.iac_session = response.data;
86
89
  // update axios instance headers with authtoken
87
90
  this.axios.defaults.headers.common['authtoken'] = response.data.authToken;
88
- localStorage.setItem('authtoken', response.data.authToken);
91
+ if (typeof localStorage != 'undefined') {
92
+ localStorage.setItem('authtoken', response.data.authToken);
93
+ }
89
94
  return _context2.abrupt("return", response.data);
90
95
  case 13:
91
96
  _context2.prev = 13;
@@ -215,6 +220,8 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
215
220
  var _query = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(type) {
216
221
  var _this = this;
217
222
  var params,
223
+ defaultOrderBy,
224
+ mergedParams,
218
225
  response,
219
226
  _args6 = arguments;
220
227
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
@@ -223,16 +230,25 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
223
230
  params = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : {};
224
231
  _context6.prev = 1;
225
232
  params.type = type;
226
- _context6.next = 5;
227
- return this.axios.post('/object_service/queryObjects', [params]);
228
- case 5:
233
+
234
+ // default
235
+ defaultOrderBy = {
236
+ orderBy: {
237
+ column: 'timeCreated',
238
+ direction: 'DESC'
239
+ }
240
+ };
241
+ mergedParams = _objectSpread(_objectSpread({}, defaultOrderBy), params);
242
+ _context6.next = 7;
243
+ return this.axios.post('/object_service/queryObjects', [mergedParams]);
244
+ case 7:
229
245
  response = _context6.sent;
230
246
  if (!(response.data.ok === false)) {
231
- _context6.next = 8;
247
+ _context6.next = 10;
232
248
  break;
233
249
  }
234
250
  return _context6.abrupt("return", this._handleError(response));
235
- case 8:
251
+ case 10:
236
252
  // Process items into RbtObject instances
237
253
  if (Array.isArray(response.data.items)) {
238
254
  response.data.items = response.data.items.map(function (record) {
@@ -240,15 +256,15 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
240
256
  });
241
257
  }
242
258
  return _context6.abrupt("return", response.data.items);
243
- case 12:
244
- _context6.prev = 12;
259
+ case 14:
260
+ _context6.prev = 14;
245
261
  _context6.t0 = _context6["catch"](1);
246
262
  return _context6.abrupt("return", this._handleError(_context6.t0));
247
- case 15:
263
+ case 17:
248
264
  case "end":
249
265
  return _context6.stop();
250
266
  }
251
- }, _callee6, this, [[1, 12]]);
267
+ }, _callee6, this, [[1, 14]]);
252
268
  }));
253
269
  function query(_x4) {
254
270
  return _query.apply(this, arguments);
@@ -298,6 +314,120 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
298
314
  }
299
315
  return load;
300
316
  }()
317
+ /**
318
+ * Performs a GET request to the specified endpoint.
319
+ *
320
+ * This method uses the Axios instance to make an authenticated GET request.
321
+ * The `authtoken` stored in the class instance is included in the request headers
322
+ * for authorization. It handles any errors and returns the response data.
323
+ *
324
+ * @param {string} endpoint - The endpoint URL to which the GET request is made.
325
+ * @param {Object} [params={}] - Optional parameters to be sent with the request.
326
+ * @returns {Promise<Object>} - The response data from the API.
327
+ */
328
+ }, {
329
+ key: "get",
330
+ value: function () {
331
+ var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(endpoint) {
332
+ var params,
333
+ headers,
334
+ response,
335
+ _args8 = arguments;
336
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
337
+ while (1) switch (_context8.prev = _context8.next) {
338
+ case 0:
339
+ params = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : {};
340
+ _context8.prev = 1;
341
+ // Add the authToken to the headers
342
+ headers = {
343
+ authtoken: this.authtoken
344
+ }; // Make the GET request using Axios
345
+ _context8.next = 5;
346
+ return this.axios.get(endpoint, {
347
+ params: params,
348
+ headers: headers
349
+ });
350
+ case 5:
351
+ response = _context8.sent;
352
+ if (!(response.data.ok === false)) {
353
+ _context8.next = 8;
354
+ break;
355
+ }
356
+ return _context8.abrupt("return", this._handleError(response));
357
+ case 8:
358
+ return _context8.abrupt("return", response.data);
359
+ case 11:
360
+ _context8.prev = 11;
361
+ _context8.t0 = _context8["catch"](1);
362
+ return _context8.abrupt("return", this._handleError(_context8.t0));
363
+ case 14:
364
+ case "end":
365
+ return _context8.stop();
366
+ }
367
+ }, _callee8, this, [[1, 11]]);
368
+ }));
369
+ function get(_x7) {
370
+ return _get.apply(this, arguments);
371
+ }
372
+ return get;
373
+ }()
374
+ /**
375
+ * Performs a POST request to the specified endpoint.
376
+ *
377
+ * This method uses the Axios instance to make an authenticated POST request.
378
+ * It includes the `authtoken` in the request headers for authorization. The method
379
+ * sends the provided data as the request body. It handles any errors and returns
380
+ * the response data.
381
+ *
382
+ * @param {string} endpoint - The endpoint URL to which the POST request is made.
383
+ * @param {Object} [data={}] - Data to be sent in the body of the POST request.
384
+ * @returns {Promise<Object>} - The response data from the API.
385
+ */
386
+ }, {
387
+ key: "post",
388
+ value: function () {
389
+ var _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(endpoint) {
390
+ var data,
391
+ headers,
392
+ response,
393
+ _args9 = arguments;
394
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
395
+ while (1) switch (_context9.prev = _context9.next) {
396
+ case 0:
397
+ data = _args9.length > 1 && _args9[1] !== undefined ? _args9[1] : {};
398
+ _context9.prev = 1;
399
+ // Add the authToken to the headers
400
+ headers = {
401
+ authtoken: this.authtoken
402
+ }; // Make the POST request using Axios
403
+ _context9.next = 5;
404
+ return this.axios.post(endpoint, data, {
405
+ headers: headers
406
+ });
407
+ case 5:
408
+ response = _context9.sent;
409
+ if (!(response.data.ok === false)) {
410
+ _context9.next = 8;
411
+ break;
412
+ }
413
+ return _context9.abrupt("return", this._handleError(response));
414
+ case 8:
415
+ return _context9.abrupt("return", response.data);
416
+ case 11:
417
+ _context9.prev = 11;
418
+ _context9.t0 = _context9["catch"](1);
419
+ return _context9.abrupt("return", this._handleError(_context9.t0));
420
+ case 14:
421
+ case "end":
422
+ return _context9.stop();
423
+ }
424
+ }, _callee9, this, [[1, 11]]);
425
+ }));
426
+ function post(_x8) {
427
+ return _post.apply(this, arguments);
428
+ }
429
+ return post;
430
+ }()
301
431
  }, {
302
432
  key: "_handleError",
303
433
  value: function _handleError(err) {
@@ -319,6 +449,7 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
319
449
  if (!RbtApi.instance) {
320
450
  var isClient = typeof window !== 'undefined';
321
451
  var authtoken = isClient ? localStorage.getItem('authtoken') : null;
452
+ console.log('RbtApi authtoken ' + authtoken);
322
453
  var axiosInstance = _axios["default"].create({
323
454
  baseURL: baseUrl,
324
455
  headers: {
@@ -327,6 +458,7 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
327
458
  }
328
459
  });
329
460
  RbtApi.instance = new RbtApi(axiosInstance);
461
+ RbtApi.instance.authtoken = authtoken;
330
462
  }
331
463
  return RbtApi.instance;
332
464
  }
package/dist/esm/index.js CHANGED
@@ -30,12 +30,28 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
30
30
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
31
31
  var Roboto = exports["default"] = /*#__PURE__*/function () {
32
32
  function Roboto() {
33
+ var proxyReq = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
33
34
  _classCallCheck(this, Roboto);
34
35
  var isBrowser = typeof window !== "undefined";
35
36
  this.config = {
36
37
  apiKey: isBrowser ? process.env.NEXT_PUBLIC_ROBOTO_API_KEY : process.env.ROBOTO_API_KEY,
37
38
  baseUrl: 'https://' + (isBrowser ? process.env.NEXT_PUBLIC_ROBOTO_HOST : process.env.ROBOTO_HOST)
38
39
  };
40
+
41
+ // Check if a request object is provided
42
+ if (proxyReq && proxyReq.headers) {
43
+ var authtoken = proxyReq.headers.authtoken;
44
+ var accesskey = proxyReq.headers.accesskey;
45
+ // Optionally add more headers as needed
46
+ if (authtoken) {
47
+ this.config.authtoken = authtoken; // Set the authtoken in the config
48
+ }
49
+
50
+ if (accesskey) {
51
+ this.config.accesskey = accesskey; // Set the accesskey in the config
52
+ }
53
+ }
54
+
39
55
  this.api = _rbt_api["default"].configure(this.config);
40
56
  if (isBrowser) {
41
57
  this.api.initLocalDb();
@@ -161,6 +177,44 @@ var Roboto = exports["default"] = /*#__PURE__*/function () {
161
177
  }
162
178
  return query;
163
179
  }()
180
+ }, {
181
+ key: "get",
182
+ value: function () {
183
+ var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(endpoint, params) {
184
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
185
+ while (1) switch (_context7.prev = _context7.next) {
186
+ case 0:
187
+ return _context7.abrupt("return", this.api.get(endpoint, params));
188
+ case 1:
189
+ case "end":
190
+ return _context7.stop();
191
+ }
192
+ }, _callee7, this);
193
+ }));
194
+ function get(_x8, _x9) {
195
+ return _get.apply(this, arguments);
196
+ }
197
+ return get;
198
+ }()
199
+ }, {
200
+ key: "post",
201
+ value: function () {
202
+ var _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(endpoint, data) {
203
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
204
+ while (1) switch (_context8.prev = _context8.next) {
205
+ case 0:
206
+ return _context8.abrupt("return", this.api.post(endpoint, data));
207
+ case 1:
208
+ case "end":
209
+ return _context8.stop();
210
+ }
211
+ }, _callee8, this);
212
+ }));
213
+ function post(_x10, _x11) {
214
+ return _post.apply(this, arguments);
215
+ }
216
+ return post;
217
+ }()
164
218
  }]);
165
219
  return Roboto;
166
220
  }();
@@ -12,6 +12,9 @@ var _lodash = _interopRequireDefault(require("lodash"));
12
12
  var _idb = require("idb");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
14
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
15
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
18
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
16
19
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
17
20
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -85,7 +88,9 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
85
88
  this.iac_session = response.data;
86
89
  // update axios instance headers with authtoken
87
90
  this.axios.defaults.headers.common['authtoken'] = response.data.authToken;
88
- localStorage.setItem('authtoken', response.data.authToken);
91
+ if (typeof localStorage != 'undefined') {
92
+ localStorage.setItem('authtoken', response.data.authToken);
93
+ }
89
94
  return _context2.abrupt("return", response.data);
90
95
  case 13:
91
96
  _context2.prev = 13;
@@ -215,6 +220,8 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
215
220
  var _query = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(type) {
216
221
  var _this = this;
217
222
  var params,
223
+ defaultOrderBy,
224
+ mergedParams,
218
225
  response,
219
226
  _args6 = arguments;
220
227
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
@@ -223,16 +230,25 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
223
230
  params = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : {};
224
231
  _context6.prev = 1;
225
232
  params.type = type;
226
- _context6.next = 5;
227
- return this.axios.post('/object_service/queryObjects', [params]);
228
- case 5:
233
+
234
+ // default
235
+ defaultOrderBy = {
236
+ orderBy: {
237
+ column: 'timeCreated',
238
+ direction: 'DESC'
239
+ }
240
+ };
241
+ mergedParams = _objectSpread(_objectSpread({}, defaultOrderBy), params);
242
+ _context6.next = 7;
243
+ return this.axios.post('/object_service/queryObjects', [mergedParams]);
244
+ case 7:
229
245
  response = _context6.sent;
230
246
  if (!(response.data.ok === false)) {
231
- _context6.next = 8;
247
+ _context6.next = 10;
232
248
  break;
233
249
  }
234
250
  return _context6.abrupt("return", this._handleError(response));
235
- case 8:
251
+ case 10:
236
252
  // Process items into RbtObject instances
237
253
  if (Array.isArray(response.data.items)) {
238
254
  response.data.items = response.data.items.map(function (record) {
@@ -240,15 +256,15 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
240
256
  });
241
257
  }
242
258
  return _context6.abrupt("return", response.data.items);
243
- case 12:
244
- _context6.prev = 12;
259
+ case 14:
260
+ _context6.prev = 14;
245
261
  _context6.t0 = _context6["catch"](1);
246
262
  return _context6.abrupt("return", this._handleError(_context6.t0));
247
- case 15:
263
+ case 17:
248
264
  case "end":
249
265
  return _context6.stop();
250
266
  }
251
- }, _callee6, this, [[1, 12]]);
267
+ }, _callee6, this, [[1, 14]]);
252
268
  }));
253
269
  function query(_x4) {
254
270
  return _query.apply(this, arguments);
@@ -298,6 +314,120 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
298
314
  }
299
315
  return load;
300
316
  }()
317
+ /**
318
+ * Performs a GET request to the specified endpoint.
319
+ *
320
+ * This method uses the Axios instance to make an authenticated GET request.
321
+ * The `authtoken` stored in the class instance is included in the request headers
322
+ * for authorization. It handles any errors and returns the response data.
323
+ *
324
+ * @param {string} endpoint - The endpoint URL to which the GET request is made.
325
+ * @param {Object} [params={}] - Optional parameters to be sent with the request.
326
+ * @returns {Promise<Object>} - The response data from the API.
327
+ */
328
+ }, {
329
+ key: "get",
330
+ value: function () {
331
+ var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(endpoint) {
332
+ var params,
333
+ headers,
334
+ response,
335
+ _args8 = arguments;
336
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
337
+ while (1) switch (_context8.prev = _context8.next) {
338
+ case 0:
339
+ params = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : {};
340
+ _context8.prev = 1;
341
+ // Add the authToken to the headers
342
+ headers = {
343
+ authtoken: this.authtoken
344
+ }; // Make the GET request using Axios
345
+ _context8.next = 5;
346
+ return this.axios.get(endpoint, {
347
+ params: params,
348
+ headers: headers
349
+ });
350
+ case 5:
351
+ response = _context8.sent;
352
+ if (!(response.data.ok === false)) {
353
+ _context8.next = 8;
354
+ break;
355
+ }
356
+ return _context8.abrupt("return", this._handleError(response));
357
+ case 8:
358
+ return _context8.abrupt("return", response.data);
359
+ case 11:
360
+ _context8.prev = 11;
361
+ _context8.t0 = _context8["catch"](1);
362
+ return _context8.abrupt("return", this._handleError(_context8.t0));
363
+ case 14:
364
+ case "end":
365
+ return _context8.stop();
366
+ }
367
+ }, _callee8, this, [[1, 11]]);
368
+ }));
369
+ function get(_x7) {
370
+ return _get.apply(this, arguments);
371
+ }
372
+ return get;
373
+ }()
374
+ /**
375
+ * Performs a POST request to the specified endpoint.
376
+ *
377
+ * This method uses the Axios instance to make an authenticated POST request.
378
+ * It includes the `authtoken` in the request headers for authorization. The method
379
+ * sends the provided data as the request body. It handles any errors and returns
380
+ * the response data.
381
+ *
382
+ * @param {string} endpoint - The endpoint URL to which the POST request is made.
383
+ * @param {Object} [data={}] - Data to be sent in the body of the POST request.
384
+ * @returns {Promise<Object>} - The response data from the API.
385
+ */
386
+ }, {
387
+ key: "post",
388
+ value: function () {
389
+ var _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(endpoint) {
390
+ var data,
391
+ headers,
392
+ response,
393
+ _args9 = arguments;
394
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
395
+ while (1) switch (_context9.prev = _context9.next) {
396
+ case 0:
397
+ data = _args9.length > 1 && _args9[1] !== undefined ? _args9[1] : {};
398
+ _context9.prev = 1;
399
+ // Add the authToken to the headers
400
+ headers = {
401
+ authtoken: this.authtoken
402
+ }; // Make the POST request using Axios
403
+ _context9.next = 5;
404
+ return this.axios.post(endpoint, data, {
405
+ headers: headers
406
+ });
407
+ case 5:
408
+ response = _context9.sent;
409
+ if (!(response.data.ok === false)) {
410
+ _context9.next = 8;
411
+ break;
412
+ }
413
+ return _context9.abrupt("return", this._handleError(response));
414
+ case 8:
415
+ return _context9.abrupt("return", response.data);
416
+ case 11:
417
+ _context9.prev = 11;
418
+ _context9.t0 = _context9["catch"](1);
419
+ return _context9.abrupt("return", this._handleError(_context9.t0));
420
+ case 14:
421
+ case "end":
422
+ return _context9.stop();
423
+ }
424
+ }, _callee9, this, [[1, 11]]);
425
+ }));
426
+ function post(_x8) {
427
+ return _post.apply(this, arguments);
428
+ }
429
+ return post;
430
+ }()
301
431
  }, {
302
432
  key: "_handleError",
303
433
  value: function _handleError(err) {
@@ -319,6 +449,7 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
319
449
  if (!RbtApi.instance) {
320
450
  var isClient = typeof window !== 'undefined';
321
451
  var authtoken = isClient ? localStorage.getItem('authtoken') : null;
452
+ console.log('RbtApi authtoken ' + authtoken);
322
453
  var axiosInstance = _axios["default"].create({
323
454
  baseURL: baseUrl,
324
455
  headers: {
@@ -327,6 +458,7 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
327
458
  }
328
459
  });
329
460
  RbtApi.instance = new RbtApi(axiosInstance);
461
+ RbtApi.instance.authtoken = authtoken;
330
462
  }
331
463
  return RbtApi.instance;
332
464
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "roboto-js",
3
- "version": "1.0.15",
3
+ "version": "1.0.17",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "main": "dist/cjs/index.cjs",
package/src/index.js CHANGED
@@ -11,7 +11,7 @@ export {
11
11
 
12
12
  export default class Roboto{
13
13
 
14
- constructor() {
14
+ constructor(proxyReq = null) {
15
15
 
16
16
  const isBrowser = typeof window !== "undefined";
17
17
 
@@ -20,6 +20,20 @@ export default class Roboto{
20
20
  baseUrl: 'https://' + (isBrowser ? process.env.NEXT_PUBLIC_ROBOTO_HOST : process.env.ROBOTO_HOST),
21
21
  };
22
22
 
23
+ // Check if a request object is provided
24
+ if (proxyReq && proxyReq.headers) {
25
+ const authtoken = proxyReq.headers.authtoken;
26
+ const accesskey = proxyReq.headers.accesskey;
27
+ // Optionally add more headers as needed
28
+ if (authtoken) {
29
+ this.config.authtoken = authtoken; // Set the authtoken in the config
30
+ }
31
+ if (accesskey) {
32
+ this.config.accesskey = accesskey; // Set the accesskey in the config
33
+ }
34
+ }
35
+
36
+
23
37
  this.api = RbtApi.configure(this.config);
24
38
  if(isBrowser){
25
39
  this.api.initLocalDb();
@@ -50,5 +64,12 @@ export default class Roboto{
50
64
  return this.api.query(type, params);
51
65
  }
52
66
 
67
+ async get(endpoint, params){
68
+ return this.api.get(endpoint, params);
69
+ }
70
+
71
+ async post(endpoint, data){
72
+ return this.api.post(endpoint, data);
73
+ }
53
74
  }
54
75
 
package/src/rbt_api.js CHANGED
@@ -20,6 +20,7 @@ export default class RbtApi {
20
20
 
21
21
  const authtoken = (isClient)? localStorage.getItem('authtoken'): null;
22
22
 
23
+ console.log('RbtApi authtoken '+authtoken);
23
24
  const axiosInstance = axios.create({
24
25
  baseURL: baseUrl,
25
26
  headers: {
@@ -29,6 +30,7 @@ export default class RbtApi {
29
30
  });
30
31
 
31
32
  RbtApi.instance = new RbtApi(axiosInstance);
33
+ RbtApi.instance.authtoken = authtoken;
32
34
  }
33
35
  return RbtApi.instance;
34
36
  }
@@ -47,6 +49,7 @@ export default class RbtApi {
47
49
 
48
50
  async login(params) {
49
51
  try {
52
+
50
53
  // create a md5 hash of the password using crypto-js
51
54
  const hash_password = CryptoJS.MD5(params.password).toString(CryptoJS.enc.Hex);
52
55
  const response = await this.axios.post('/user_service/loginUser', [{
@@ -61,8 +64,10 @@ export default class RbtApi {
61
64
  this.iac_session = response.data;
62
65
  // update axios instance headers with authtoken
63
66
  this.axios.defaults.headers.common['authtoken'] = response.data.authToken;
64
- localStorage.setItem('authtoken', response.data.authToken);
65
-
67
+
68
+ if(typeof localStorage != 'undefined'){
69
+ localStorage.setItem('authtoken', response.data.authToken);
70
+ }
66
71
 
67
72
 
68
73
  return response.data;
@@ -121,7 +126,12 @@ export default class RbtApi {
121
126
  async query(type, params = {}) {
122
127
  try {
123
128
  params.type = type;
124
- const response = await this.axios.post('/object_service/queryObjects', [params]);
129
+
130
+ // default
131
+ const defaultOrderBy = { orderBy: { column: 'timeCreated', direction: 'DESC' } };
132
+ const mergedParams = { ...defaultOrderBy, ...params };
133
+
134
+ const response = await this.axios.post('/object_service/queryObjects', [mergedParams]);
125
135
  if (response.data.ok === false) {
126
136
  return this._handleError(response);
127
137
  }
@@ -154,6 +164,77 @@ export default class RbtApi {
154
164
 
155
165
  }
156
166
 
167
+ /**
168
+ * Performs a GET request to the specified endpoint.
169
+ *
170
+ * This method uses the Axios instance to make an authenticated GET request.
171
+ * The `authtoken` stored in the class instance is included in the request headers
172
+ * for authorization. It handles any errors and returns the response data.
173
+ *
174
+ * @param {string} endpoint - The endpoint URL to which the GET request is made.
175
+ * @param {Object} [params={}] - Optional parameters to be sent with the request.
176
+ * @returns {Promise<Object>} - The response data from the API.
177
+ */
178
+ async get(endpoint, params = {}) {
179
+ try {
180
+
181
+ // Add the authToken to the headers
182
+ const headers = {
183
+ authtoken: this.authtoken
184
+ };
185
+
186
+ // Make the GET request using Axios
187
+ const response = await this.axios.get(endpoint, { params, headers });
188
+
189
+ // Check if the response is not okay
190
+ if (response.data.ok === false) {
191
+ return this._handleError(response);
192
+ }
193
+
194
+ // Return the response data
195
+ return response.data;
196
+ } catch (e) {
197
+ // Handle any errors
198
+ return this._handleError(e);
199
+ }
200
+ }
201
+
202
+ /**
203
+ * Performs a POST request to the specified endpoint.
204
+ *
205
+ * This method uses the Axios instance to make an authenticated POST request.
206
+ * It includes the `authtoken` in the request headers for authorization. The method
207
+ * sends the provided data as the request body. It handles any errors and returns
208
+ * the response data.
209
+ *
210
+ * @param {string} endpoint - The endpoint URL to which the POST request is made.
211
+ * @param {Object} [data={}] - Data to be sent in the body of the POST request.
212
+ * @returns {Promise<Object>} - The response data from the API.
213
+ */
214
+ async post(endpoint, data = {}) {
215
+ try {
216
+ // Add the authToken to the headers
217
+ const headers = {
218
+ authtoken: this.authtoken
219
+ };
220
+
221
+ // Make the POST request using Axios
222
+ const response = await this.axios.post(endpoint, data, { headers });
223
+
224
+ // Check if the response is not okay
225
+ if (response.data.ok === false) {
226
+ return this._handleError(response);
227
+ }
228
+
229
+ // Return the response data
230
+ return response.data;
231
+ } catch (e) {
232
+ // Handle any errors
233
+ return this._handleError(e);
234
+ }
235
+ }
236
+
237
+
157
238
  _handleError(err){
158
239
 
159
240
  if(_.isObject(err)){