@bringg/dashboard-sdk 9.50.31107-pre → 9.51.0-pre.0

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.
@@ -22377,7 +22377,7 @@ var lodash_1 = __webpack_require__(96486);
22377
22377
  var BringgException_1 = __webpack_require__(43605);
22378
22378
  var Logger_1 = __importDefault(__webpack_require__(55860));
22379
22379
  var abort_1 = __webpack_require__(34179);
22380
- var version = '9.50.31107-pre';
22380
+ var version = '9.51.0-pre.0';
22381
22381
  function logErrorResponse(response) {
22382
22382
  var data = response.data, status = response.status;
22383
22383
  try {
@@ -29591,7 +29591,7 @@ var __values = (this && this.__values) || function(o) {
29591
29591
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
29592
29592
  };
29593
29593
  Object.defineProperty(exports, "__esModule", ({ value: true }));
29594
- exports.RealtimeEvents = exports.userToGroupsMapper = exports.groupFilter = exports.GROUP_VALUES = exports.UserGroupTypes = exports.UserEvents = exports.Routes = exports.baseRoute = exports.successExtractor = exports.countExtractor = exports.usersExtractor = exports.userExtractor = exports.defaultExtractor = exports.UsersScopes = void 0;
29594
+ exports.RealtimeEvents = exports.userToGroupsMapper = exports.groupFilter = exports.GROUP_VALUES = exports.UserGroupTypes = exports.UserEvents = exports.ROUTES = exports.baseRoute = exports.successExtractor = exports.countExtractor = exports.usersExtractor = exports.userExtractor = exports.defaultExtractor = exports.UsersScopes = void 0;
29595
29595
  var UserHelpers_1 = __webpack_require__(2450);
29596
29596
  var UsersScopes;
29597
29597
  (function (UsersScopes) {
@@ -29612,9 +29612,13 @@ exports.countExtractor = countExtractor;
29612
29612
  var successExtractor = function (response) { return response.success; };
29613
29613
  exports.successExtractor = successExtractor;
29614
29614
  exports.baseRoute = '/users';
29615
- exports.Routes = {
29615
+ exports.ROUTES = {
29616
29616
  GET_ALL: exports.baseRoute,
29617
- GET_DRIVERS_BY_TEAM: '/teams/{:teamId}/users'
29617
+ GET_DRIVERS_BY_TEAM: '/teams/{:teamId}/users',
29618
+ UNLOCK: "".concat(exports.baseRoute, "/{:userId}/unlock"),
29619
+ MESSAGE_DRIVER: '/announcement/user/{:userId}',
29620
+ VALIDATE_PHONE: '/api/user/validate_phone',
29621
+ DELETE_MANY: '/users/batch_delete'
29618
29622
  };
29619
29623
  var UserEvents;
29620
29624
  (function (UserEvents) {
@@ -29668,6 +29672,8 @@ exports.userToGroupsMapper = userToGroupsMapper;
29668
29672
  var RealtimeEvents;
29669
29673
  (function (RealtimeEvents) {
29670
29674
  RealtimeEvents["Update"] = "employee update";
29675
+ RealtimeEvents["Create"] = "new employee";
29676
+ RealtimeEvents["Delete"] = "delete employee";
29671
29677
  })(RealtimeEvents = exports.RealtimeEvents || (exports.RealtimeEvents = {}));
29672
29678
  //# sourceMappingURL=User.consts.js.map
29673
29679
 
@@ -30083,23 +30089,55 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30083
30089
  return (mod && mod.__esModule) ? mod : { "default": mod };
30084
30090
  };
30085
30091
  Object.defineProperty(exports, "__esModule", ({ value: true }));
30092
+ var lodash_1 = __webpack_require__(96486);
30093
+ var BringgException_1 = __webpack_require__(43605);
30094
+ var ExceptionReason_1 = __webpack_require__(73532);
30086
30095
  var merge_mapper_1 = __webpack_require__(59200);
30087
30096
  var storable_realtime_subscriptions_1 = __importDefault(__webpack_require__(1227));
30097
+ var data_entity_1 = __webpack_require__(91083);
30088
30098
  var data_store_1 = __importDefault(__webpack_require__(73135));
30089
30099
  var storable_data_service_1 = __importDefault(__webpack_require__(45297));
30100
+ var keyset_pagination_consts_1 = __webpack_require__(92400);
30090
30101
  var User_consts_1 = __webpack_require__(38894);
30091
30102
  var users_service_1 = __importDefault(__webpack_require__(38267));
30092
30103
  var UsersApi = /** @class */ (function () {
30093
30104
  function UsersApi(session) {
30094
30105
  var _this = this;
30095
- this.userStore = new data_store_1.default(undefined, { shallow: true });
30106
+ var groupFilters = [
30107
+ {
30108
+ groupType: User_consts_1.UserGroupTypes.Main,
30109
+ keyFunc: function (user) { return (0, User_consts_1.userToGroupsMapper)(user); }
30110
+ },
30111
+ {
30112
+ groupType: 'team',
30113
+ keyFunc: function (user) { return user.team_ids || []; }
30114
+ }
30115
+ ];
30116
+ this.userStore = new data_store_1.default(groupFilters, { shallow: true });
30096
30117
  this.usersService = new users_service_1.default(session);
30097
30118
  this.storableDataService = new storable_data_service_1.default(this.userStore, function (user) {
30098
30119
  return merge_mapper_1.mergeMapper.mergeIntoExisting(_this.userStore, user);
30099
30120
  });
30100
30121
  this.storableRealtimeSubscriptions = new storable_realtime_subscriptions_1.default(session, this.userStore, this.storableDataService);
30101
- this.storableRealtimeSubscriptions.updateStoreOnEvents([{ name: User_consts_1.RealtimeEvents.Update, isDelete: false }]);
30122
+ this.storableRealtimeSubscriptions.updateStoreOnEvents([
30123
+ { name: User_consts_1.RealtimeEvents.Update, isDelete: false },
30124
+ { name: User_consts_1.RealtimeEvents.Create, isDelete: false },
30125
+ { name: User_consts_1.RealtimeEvents.Delete, isDelete: true }
30126
+ ]);
30102
30127
  }
30128
+ /**
30129
+ * Initialize group filters for user categorization
30130
+ * This sets up the realtime subscriptions for proper store management
30131
+ * for now keep this, need to check if this is needed
30132
+ */
30133
+ // public updateStoreOnEvents() {
30134
+ // // This mirrors the pattern from TasksApi and other v2 APIs
30135
+ // this.storableRealtimeSubscriptions.updateStoreOnEvents([
30136
+ // { name: RealtimeEvents.Update, isDelete: false },
30137
+ // { name: RealtimeEvents.Create, isDelete: false },
30138
+ // { name: RealtimeEvents.Delete, isDelete: true }
30139
+ // ]);
30140
+ // }
30103
30141
  UsersApi.prototype.delete = function (userId) {
30104
30142
  return __awaiter(this, void 0, void 0, function () {
30105
30143
  var response;
@@ -30123,69 +30161,227 @@ var UsersApi = /** @class */ (function () {
30123
30161
  });
30124
30162
  });
30125
30163
  };
30126
- UsersApi.prototype.loadAll = function (options) {
30127
- var _this = this;
30128
- return this.storableDataService.loadAll('loadAll', function () { return __awaiter(_this, void 0, void 0, function () {
30164
+ UsersApi.prototype.deleteMany = function (userIds) {
30165
+ return __awaiter(this, void 0, void 0, function () {
30129
30166
  var response;
30167
+ var _this = this;
30130
30168
  return __generator(this, function (_a) {
30131
30169
  switch (_a.label) {
30132
- case 0: return [4 /*yield*/, this.usersService.loadAll({}, options)];
30170
+ case 0: return [4 /*yield*/, this.storableDataService.deleteMany('deleteMany', function () { return __awaiter(_this, void 0, void 0, function () {
30171
+ return __generator(this, function (_a) {
30172
+ switch (_a.label) {
30173
+ case 0: return [4 /*yield*/, this.usersService.deleteMany(userIds)];
30174
+ case 1:
30175
+ response = _a.sent();
30176
+ return [2 /*return*/, response];
30177
+ }
30178
+ });
30179
+ }); }, userIds)];
30133
30180
  case 1:
30134
- response = _a.sent();
30135
- return [2 /*return*/, response.users];
30181
+ _a.sent();
30182
+ return [2 /*return*/, response];
30136
30183
  }
30137
30184
  });
30138
- }); }, options);
30185
+ });
30139
30186
  };
30140
- UsersApi.prototype.getGroup = function (group) {
30141
- return this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, group);
30187
+ UsersApi.prototype.create = function (user) {
30188
+ return __awaiter(this, void 0, void 0, function () {
30189
+ var _this = this;
30190
+ return __generator(this, function (_a) {
30191
+ if ((0, lodash_1.isNil)(user.email) && (0, lodash_1.isNil)(user.phone)) {
30192
+ throw new BringgException_1.BringgException(ExceptionReason_1.ExceptionReason.INVALID_ARGUMENTS, 'Phone or Email is required');
30193
+ }
30194
+ return [2 /*return*/, this.storableDataService.modify('create', function () { return _this.usersService.create(user); })];
30195
+ });
30196
+ });
30142
30197
  };
30143
- UsersApi.prototype.get = function (id) {
30144
- return this.userStore.get(id);
30198
+ UsersApi.prototype.update = function (userId, userDelta) {
30199
+ return __awaiter(this, void 0, void 0, function () {
30200
+ var _this = this;
30201
+ return __generator(this, function (_a) {
30202
+ return [2 /*return*/, this.storableDataService.modify('update', function () { return _this.usersService.update(userId, userDelta); }, function (modifiedUser) {
30203
+ var currentUser = _this.usersService.session.user;
30204
+ if (currentUser.id === modifiedUser.current.id) {
30205
+ _this.usersService.session.user = (0, lodash_1.merge)(currentUser, modifiedUser.current);
30206
+ _this.usersService.session.sendDataEvent(User_consts_1.UserEvents.CURRENT_USER_UPDATED, _this.usersService.session.user);
30207
+ }
30208
+ })];
30209
+ });
30210
+ });
30145
30211
  };
30146
- UsersApi.prototype.getMany = function (ids) {
30147
- return this.userStore.getMany(ids);
30212
+ UsersApi.prototype.load = function (userId, options) {
30213
+ if (options === void 0) { options = data_entity_1.DEFAULT_OPTIONS; }
30214
+ return __awaiter(this, void 0, void 0, function () {
30215
+ var _this = this;
30216
+ return __generator(this, function (_a) {
30217
+ return [2 /*return*/, this.storableDataService.load('load', function () { return _this.usersService.get(userId); }, userId, options)];
30218
+ });
30219
+ });
30148
30220
  };
30149
30221
  UsersApi.prototype.loadMany = function (ids, options) {
30150
30222
  if (options === void 0) { options = { useCache: true }; }
30151
30223
  return __awaiter(this, void 0, void 0, function () {
30224
+ var chunkSize;
30152
30225
  var _this = this;
30153
30226
  return __generator(this, function (_a) {
30154
- // If no IDs provided, return empty array without making API call
30155
30227
  if (ids.length === 0) {
30156
30228
  return [2 /*return*/, []];
30157
30229
  }
30230
+ chunkSize = options.chunkSize || 500;
30158
30231
  return [2 /*return*/, this.storableDataService.loadMany('loadMany', function (idsToLoad) { return __awaiter(_this, void 0, void 0, function () {
30232
+ var users;
30233
+ return __generator(this, function (_a) {
30234
+ switch (_a.label) {
30235
+ case 0: return [4 /*yield*/, this.usersService.loadMany({ ids: idsToLoad, limit: chunkSize })];
30236
+ case 1:
30237
+ users = _a.sent();
30238
+ return [2 /*return*/, users];
30239
+ }
30240
+ });
30241
+ }); }, ids, __assign(__assign({}, options), { chunkSize: chunkSize }))];
30242
+ });
30243
+ });
30244
+ };
30245
+ UsersApi.prototype.loadAllByTeam = function (teamId, options) {
30246
+ return __awaiter(this, void 0, void 0, function () {
30247
+ var _this = this;
30248
+ return __generator(this, function (_a) {
30249
+ return [2 /*return*/, this.storableDataService.loadAll('loadDriversByTeam', function () { return __awaiter(_this, void 0, void 0, function () {
30250
+ var users;
30251
+ return __generator(this, function (_a) {
30252
+ switch (_a.label) {
30253
+ case 0: return [4 /*yield*/, this.usersService.loadAllByTeams(teamId)];
30254
+ case 1:
30255
+ users = _a.sent();
30256
+ return [2 /*return*/, users];
30257
+ }
30258
+ });
30259
+ }); }, __assign(__assign({}, options), { groupType: 'team', groupValue: teamId }))];
30260
+ });
30261
+ });
30262
+ };
30263
+ // Pagination methods
30264
+ // TODO: convert options:DataOptions to page and limit
30265
+ UsersApi.prototype.loadAll = function (options) {
30266
+ return __awaiter(this, void 0, void 0, function () {
30267
+ var _this = this;
30268
+ return __generator(this, function (_a) {
30269
+ return [2 /*return*/, this.storableDataService.loadAll('loadAll', function () { return __awaiter(_this, void 0, void 0, function () {
30159
30270
  var response;
30160
30271
  return __generator(this, function (_a) {
30161
30272
  switch (_a.label) {
30162
- case 0: return [4 /*yield*/, this.usersService.loadAll({ ids: idsToLoad })];
30273
+ case 0: return [4 /*yield*/, this.usersService.loadAll({}, { signal: options === null || options === void 0 ? void 0 : options.signal })];
30163
30274
  case 1:
30164
30275
  response = _a.sent();
30165
30276
  return [2 /*return*/, response.users];
30166
30277
  }
30167
30278
  });
30168
- }); }, ids, __assign(__assign({}, options), { chunkSize: options.chunkSize || 500 }))];
30279
+ }); }, options)];
30169
30280
  });
30170
30281
  });
30171
30282
  };
30172
- UsersApi.prototype.onUpdate = function (callback) {
30173
- return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Update, callback);
30174
- };
30175
- UsersApi.prototype.loadDriversByTeam = function (teamId) {
30283
+ UsersApi.prototype.getAllDrivers = function (_a) {
30284
+ var _b = _a.limit, limit = _b === void 0 ? 25 : _b, _c = _a.page_action, page_action = _c === void 0 ? keyset_pagination_consts_1.KeysetPaginationPageAction.NEXT : _c, cursor = _a.cursor, options = _a.options;
30176
30285
  return __awaiter(this, void 0, void 0, function () {
30177
- var users;
30178
- return __generator(this, function (_a) {
30179
- switch (_a.label) {
30180
- case 0: return [4 /*yield*/, this.usersService.loadAllByTeams(teamId)];
30286
+ var optionsWithDefaults, loadResult;
30287
+ var _this = this;
30288
+ return __generator(this, function (_d) {
30289
+ switch (_d.label) {
30290
+ case 0:
30291
+ optionsWithDefaults = (0, lodash_1.defaults)(options, { onlyOnlineDriver: false, onlyCustomers: false });
30292
+ return [4 /*yield*/, this.storableDataService.loadAll('getAllDrivers', function () { return __awaiter(_this, void 0, void 0, function () {
30293
+ var result;
30294
+ return __generator(this, function (_a) {
30295
+ switch (_a.label) {
30296
+ case 0: return [4 /*yield*/, this.usersService.getAllDrivers({
30297
+ limit: limit,
30298
+ page_action: page_action,
30299
+ cursor: cursor,
30300
+ options: optionsWithDefaults
30301
+ })];
30302
+ case 1:
30303
+ result = _a.sent();
30304
+ loadResult = result;
30305
+ return [2 /*return*/, result.users];
30306
+ }
30307
+ });
30308
+ }); }, {
30309
+ useCache: true,
30310
+ // Group drivers appropriately based on options
30311
+ groupType: User_consts_1.UserGroupTypes.Main,
30312
+ groupValue: optionsWithDefaults.onlyCustomers ? User_consts_1.GROUP_VALUES.Customers : User_consts_1.GROUP_VALUES.Drivers
30313
+ })];
30181
30314
  case 1:
30182
- users = _a.sent();
30183
- this.storableDataService.updateManyInStores(users);
30184
- return [2 /*return*/, users];
30315
+ _d.sent();
30316
+ return [2 /*return*/, __assign(__assign({}, loadResult), { users: loadResult.users.map(function (user) { return _this.userStore.get(user.id); }) })];
30185
30317
  }
30186
30318
  });
30187
30319
  });
30188
30320
  };
30321
+ // Business logic methods
30322
+ UsersApi.prototype.messageDriver = function (userId, message) {
30323
+ return __awaiter(this, void 0, void 0, function () {
30324
+ return __generator(this, function (_a) {
30325
+ return [2 /*return*/, this.usersService.messageDriver(userId, message)];
30326
+ });
30327
+ });
30328
+ };
30329
+ UsersApi.prototype.unlock = function (userId) {
30330
+ return __awaiter(this, void 0, void 0, function () {
30331
+ return __generator(this, function (_a) {
30332
+ return [2 /*return*/, this.usersService.unlock(userId)];
30333
+ });
30334
+ });
30335
+ };
30336
+ UsersApi.prototype.validatePhone = function (phone) {
30337
+ return __awaiter(this, void 0, void 0, function () {
30338
+ return __generator(this, function (_a) {
30339
+ return [2 /*return*/, this.usersService.validatePhone(phone)];
30340
+ });
30341
+ });
30342
+ };
30343
+ // Store query methods - direct access to local store without API calls
30344
+ UsersApi.prototype.getGroup = function (group) {
30345
+ return this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, group);
30346
+ };
30347
+ UsersApi.prototype.getTeamGroup = function (teamId) {
30348
+ return this.userStore.getGroup('team', teamId);
30349
+ };
30350
+ UsersApi.prototype.get = function (id) {
30351
+ return this.userStore.get(id);
30352
+ };
30353
+ UsersApi.prototype.getMany = function (ids) {
30354
+ return this.userStore.getMany(ids);
30355
+ };
30356
+ UsersApi.prototype.getAll = function () {
30357
+ return this.userStore.getAll();
30358
+ };
30359
+ UsersApi.prototype.getOfflineDrivers = function () {
30360
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OfflineDrivers);
30361
+ return group ? Array.from(group) : [];
30362
+ };
30363
+ UsersApi.prototype.getOnlineDrivers = function () {
30364
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OnlineDrivers);
30365
+ return group ? Array.from(group) : [];
30366
+ };
30367
+ UsersApi.prototype.getAllLocalDrivers = function () {
30368
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.Drivers);
30369
+ return group ? Array.from(group) : [];
30370
+ };
30371
+ UsersApi.prototype.getOnShiftDrivers = function () {
30372
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OnShiftDrivers);
30373
+ return group ? Array.from(group) : [];
30374
+ };
30375
+ // Additional callback methods
30376
+ UsersApi.prototype.onCreate = function (callback) {
30377
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Create, callback);
30378
+ };
30379
+ UsersApi.prototype.onUpdate = function (callback) {
30380
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Update, callback);
30381
+ };
30382
+ UsersApi.prototype.onDelete = function (callback) {
30383
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Delete, callback);
30384
+ };
30189
30385
  return UsersApi;
30190
30386
  }());
30191
30387
  exports["default"] = UsersApi;
@@ -30244,6 +30440,13 @@ var UsersService = /** @class */ (function () {
30244
30440
  function UsersService(session) {
30245
30441
  this.service = new CrudService_1.default(session, 'users');
30246
30442
  }
30443
+ Object.defineProperty(UsersService.prototype, "session", {
30444
+ get: function () {
30445
+ return this.service.session;
30446
+ },
30447
+ enumerable: false,
30448
+ configurable: true
30449
+ });
30247
30450
  UsersService.prototype.delete = function (userId) {
30248
30451
  return __awaiter(this, void 0, void 0, function () {
30249
30452
  return __generator(this, function (_a) {
@@ -30251,20 +30454,63 @@ var UsersService = /** @class */ (function () {
30251
30454
  });
30252
30455
  });
30253
30456
  };
30457
+ UsersService.prototype.deleteMany = function (userIds) {
30458
+ return __awaiter(this, void 0, void 0, function () {
30459
+ return __generator(this, function (_a) {
30460
+ return [2 /*return*/, this.service.routeGenerator
30461
+ .delete(User_consts_1.ROUTES.DELETE_MANY)
30462
+ .withPayload({ ids: userIds })
30463
+ .withExtractor(function (response) { return response; })
30464
+ .setException('Could not delete users')
30465
+ .invoke()];
30466
+ });
30467
+ });
30468
+ };
30469
+ UsersService.prototype.create = function (user) {
30470
+ return __awaiter(this, void 0, void 0, function () {
30471
+ return __generator(this, function (_a) {
30472
+ return [2 /*return*/, this.service.create(user).then(function (response) { return response.user; })];
30473
+ });
30474
+ });
30475
+ };
30476
+ UsersService.prototype.update = function (userId, userDelta) {
30477
+ return __awaiter(this, void 0, void 0, function () {
30478
+ return __generator(this, function (_a) {
30479
+ return [2 /*return*/, this.service.update(userId, userDelta).then(function (response) { return response.user; })];
30480
+ });
30481
+ });
30482
+ };
30483
+ UsersService.prototype.get = function (userId) {
30484
+ return __awaiter(this, void 0, void 0, function () {
30485
+ return __generator(this, function (_a) {
30486
+ return [2 /*return*/, this.service.get(userId).then(function (user) { return user; })];
30487
+ });
30488
+ });
30489
+ };
30254
30490
  UsersService.prototype.loadAll = function (query, commonOptions) {
30255
30491
  if (query === void 0) { query = {}; }
30256
30492
  return __awaiter(this, void 0, void 0, function () {
30257
30493
  return __generator(this, function (_a) {
30258
- switch (_a.label) {
30259
- case 0: return [4 /*yield*/, this.service.routeGenerator
30260
- .get(User_consts_1.Routes.GET_ALL)
30261
- .withQueryString(query)
30262
- .withExtractor(function (response) { return ({ has_next_page: response.has_next_page, users: response.users }); })
30263
- .setException('Could not get users')
30264
- .withCommonOptions(commonOptions)
30265
- .invoke()];
30266
- case 1: return [2 /*return*/, _a.sent()];
30267
- }
30494
+ return [2 /*return*/, this.service.routeGenerator
30495
+ .get(User_consts_1.ROUTES.GET_ALL)
30496
+ .withQueryString(query)
30497
+ .withExtractor(function (response) { return ({ has_next_page: response.has_next_page, users: response.users }); })
30498
+ .setException('Could not get users')
30499
+ .withCommonOptions(commonOptions)
30500
+ .invoke()];
30501
+ });
30502
+ });
30503
+ };
30504
+ UsersService.prototype.loadMany = function (query, commonOptions) {
30505
+ if (query === void 0) { query = {}; }
30506
+ return __awaiter(this, void 0, void 0, function () {
30507
+ return __generator(this, function (_a) {
30508
+ return [2 /*return*/, this.service.routeGenerator
30509
+ .get(User_consts_1.ROUTES.GET_ALL)
30510
+ .withQueryString(query)
30511
+ .setException('Could not get users by ids')
30512
+ .withCommonOptions(commonOptions)
30513
+ .invoke()];
30268
30514
  });
30269
30515
  });
30270
30516
  };
@@ -30272,7 +30518,7 @@ var UsersService = /** @class */ (function () {
30272
30518
  return __awaiter(this, void 0, void 0, function () {
30273
30519
  return __generator(this, function (_a) {
30274
30520
  return [2 /*return*/, this.service.routeGenerator
30275
- .get(User_consts_1.Routes.GET_DRIVERS_BY_TEAM)
30521
+ .get(User_consts_1.ROUTES.GET_DRIVERS_BY_TEAM)
30276
30522
  .withRouteParams({ teamId: teamId })
30277
30523
  .setException("failed to get teams drivers for team ".concat(teamId))
30278
30524
  .withCommonOptions(commonOptions)
@@ -30280,6 +30526,104 @@ var UsersService = /** @class */ (function () {
30280
30526
  });
30281
30527
  });
30282
30528
  };
30529
+ // public async getMany(
30530
+ // usersIds: number[],
30531
+ // page = 1,
30532
+ // limit = 50,
30533
+ // commonOptions?: CommonOptions
30534
+ // ): Promise<AllUsersResponse> {
30535
+ // return this.service.routeGenerator
30536
+ // .get(ROUTES.GET_ALL)
30537
+ // .withQueryString({ ids: usersIds, page, limit })
30538
+ // .withExtractor(response => ({ has_next_page: response.has_next_page, users: response.users }))
30539
+ // .setException('Could not get users by ids')
30540
+ // .withCommonOptions(commonOptions)
30541
+ // .invoke<AllUsersResponse, AllUsersResponse>();
30542
+ // }
30543
+ /**
30544
+ * Generic method for keyset pagination with optional scoping
30545
+ */
30546
+ UsersService.prototype.getAllUsersWithKeysetPagination = function (request, scopes, exceptionMessage) {
30547
+ if (scopes === void 0) { scopes = []; }
30548
+ if (exceptionMessage === void 0) { exceptionMessage = 'Could not get users'; }
30549
+ return __awaiter(this, void 0, void 0, function () {
30550
+ var limit, page_action, cursor, options, queryParams;
30551
+ return __generator(this, function (_a) {
30552
+ limit = request.limit, page_action = request.page_action, cursor = request.cursor, options = request.options;
30553
+ // Add driver-specific scopes if options are provided
30554
+ if (options) {
30555
+ if (options.onlyCustomers) {
30556
+ scopes.push(User_consts_1.UsersScopes.CUSTOMERS);
30557
+ }
30558
+ else if (!scopes.includes(User_consts_1.UsersScopes.ADMINS) && !scopes.includes(User_consts_1.UsersScopes.DISPATCHERS)) {
30559
+ // Only add DRIVERS scope if we're not already dealing with admins/dispatchers
30560
+ scopes.push(User_consts_1.UsersScopes.DRIVERS);
30561
+ }
30562
+ if (options.onlyOnlineDriver) {
30563
+ scopes.push(User_consts_1.UsersScopes.MARKED_AS_ONLINE);
30564
+ }
30565
+ }
30566
+ queryParams = { pgver: '2', limit: limit, page_action: page_action, cursor: cursor };
30567
+ if (scopes.length > 0) {
30568
+ queryParams.scopes = scopes;
30569
+ }
30570
+ return [2 /*return*/, this.service.routeGenerator
30571
+ .get(User_consts_1.ROUTES.GET_ALL)
30572
+ .withQueryString(queryParams)
30573
+ .withExtractor(function (response) { return ({
30574
+ next_page_cursor: response.next_page_cursor,
30575
+ previous_page_cursor: response.previous_page_cursor,
30576
+ users: response.users
30577
+ }); })
30578
+ .setException(exceptionMessage)
30579
+ .invoke()];
30580
+ });
30581
+ });
30582
+ };
30583
+ UsersService.prototype.getAllDrivers = function (request) {
30584
+ return __awaiter(this, void 0, void 0, function () {
30585
+ return __generator(this, function (_a) {
30586
+ return [2 /*return*/, this.getAllUsersWithKeysetPagination(request, [], 'Could not get all drivers')];
30587
+ });
30588
+ });
30589
+ };
30590
+ UsersService.prototype.unlock = function (userId) {
30591
+ return __awaiter(this, void 0, void 0, function () {
30592
+ return __generator(this, function (_a) {
30593
+ return [2 /*return*/, this.service.routeGenerator
30594
+ .post(User_consts_1.ROUTES.UNLOCK)
30595
+ .withRouteParams({ userId: userId })
30596
+ .withExtractor(User_consts_1.successExtractor)
30597
+ .setException("Could not unlock user with id: ".concat(userId))
30598
+ .invoke()];
30599
+ });
30600
+ });
30601
+ };
30602
+ UsersService.prototype.validatePhone = function (phone) {
30603
+ return __awaiter(this, void 0, void 0, function () {
30604
+ return __generator(this, function (_a) {
30605
+ return [2 /*return*/, this.service.routeGenerator
30606
+ .get(User_consts_1.ROUTES.VALIDATE_PHONE)
30607
+ .withQueryString({ phone: phone })
30608
+ .withExtractor(function (response) { return response.phone_valid; })
30609
+ .setException("Phone is not valid: ".concat(phone))
30610
+ .invoke()];
30611
+ });
30612
+ });
30613
+ };
30614
+ UsersService.prototype.messageDriver = function (userId, message) {
30615
+ return __awaiter(this, void 0, void 0, function () {
30616
+ return __generator(this, function (_a) {
30617
+ return [2 /*return*/, this.service.routeGenerator
30618
+ .put(User_consts_1.ROUTES.MESSAGE_DRIVER)
30619
+ .withRouteParams({ userId: userId })
30620
+ .withPayload({ user_id: userId, message: message })
30621
+ .withExtractor(function (response) { return response.announcement_id; })
30622
+ .setException("Could not message to user ".concat(userId))
30623
+ .invoke()];
30624
+ });
30625
+ });
30626
+ };
30283
30627
  return UsersService;
30284
30628
  }());
30285
30629
  exports["default"] = UsersService;
@@ -31026,9 +31370,6 @@ var VehicleEntity = /** @class */ (function (_super) {
31026
31370
  });
31027
31371
  });
31028
31372
  this.realTime.on(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, function (vehicle) { return _this.store.updateInStore(vehicle); });
31029
- this.realTime.on(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (vehicle) {
31030
- return _this.store.removeFromStore(vehicle.id);
31031
- });
31032
31373
  };
31033
31374
  VehicleEntity.prototype.getAll = function () {
31034
31375
  return this.getAllOrFetch(null, Vehicle_consts_1.vehiclesExtractor, Vehicle_consts_1.vehiclesExtractor);
@@ -31285,12 +31626,7 @@ var VehiclesApi = /** @class */ (function () {
31285
31626
  return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, function (item) { return callback(item.current); });
31286
31627
  };
31287
31628
  VehiclesApi.prototype.onDelete = function (callback) {
31288
- return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) {
31289
- console.log(callback, item);
31290
- console.log(callback, item.current);
31291
- console.log(callback, item.diff);
31292
- return callback(item.current);
31293
- });
31629
+ return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) { return callback(item.current); });
31294
31630
  };
31295
31631
  VehiclesApi.prototype.onUnassigned = function (callback) {
31296
31632
  return this.storableRealtimeSubscriptions.onAnyEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UNASSIGNED, function (vehicle) {
@@ -33096,7 +33432,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33096
33432
  return (mod && mod.__esModule) ? mod : { "default": mod };
33097
33433
  };
33098
33434
  Object.defineProperty(exports, "__esModule", ({ value: true }));
33099
- exports.WorkflowsApi = exports.VehicleTypeConsts = exports.VehicleCategoryConsts = exports.VehicleGroup = exports.VehiclesApi = exports.AbortUtils = exports.UsersApi = exports.UploadApi = exports.UploadConsts = exports.TasksExplorerApi = exports.TaskRejectReasonsApi = exports.TaskInventoryConsts = exports.TasksApi = exports.TaskGroupValues = exports.TaskGroupTypes = exports.TagConsts = exports.ServiceAreaApi = exports.ServiceAreaFilterGroups = exports.RunsApi = exports.RunStatus = exports.RunConsts = exports.ResourceUploadType = exports.ReasonToChangeInventory = exports.PlannedRoutesConsts = exports.PlannedDeliveryWindowsApi = exports.RecurrenceType = exports.PlannedDeliveryWindowsFilterGroups = exports.OptimizationResultApi = exports.NotificationTypesConsts = exports.NotificationTemplateConsts = exports.LookupConsts = exports.LanguageConsts = exports.ExclusionWindowApiV2 = exports.ExclusionWindowsFilterGroups = exports.DeliveryWindowsApi = exports.DeliveryBlockConsts = exports.CrewConsts = exports.Responses = exports.ChatMessageConsts = exports.ChatConversationConsts = void 0;
33435
+ exports.WorkflowsApi = exports.VehicleTypeConsts = exports.VehicleCategoryConsts = exports.VehicleGroup = exports.VehiclesApi = exports.AbortUtils = exports.UsersApi = exports.UserGroupTypes = exports.GROUP_VALUES = exports.UploadApi = exports.UploadConsts = exports.TasksExplorerApi = exports.TaskRejectReasonsApi = exports.TaskInventoryConsts = exports.TasksApi = exports.TaskGroupValues = exports.TaskGroupTypes = exports.TagConsts = exports.ServiceAreaApi = exports.ServiceAreaFilterGroups = exports.RunsApi = exports.RunStatus = exports.RunConsts = exports.ResourceUploadType = exports.ReasonToChangeInventory = exports.PlannedRoutesConsts = exports.PlannedDeliveryWindowsApi = exports.RecurrenceType = exports.PlannedDeliveryWindowsFilterGroups = exports.OptimizationResultApi = exports.NotificationTypesConsts = exports.NotificationTemplateConsts = exports.LookupConsts = exports.LanguageConsts = exports.ExclusionWindowApiV2 = exports.ExclusionWindowsFilterGroups = exports.DeliveryWindowsApi = exports.DeliveryBlockConsts = exports.CrewConsts = exports.Responses = exports.ChatMessageConsts = exports.ChatConversationConsts = void 0;
33100
33436
  __exportStar(__webpack_require__(37360), exports);
33101
33437
  __exportStar(__webpack_require__(5655), exports);
33102
33438
  exports.ChatConversationConsts = __importStar(__webpack_require__(44448));
@@ -33150,6 +33486,9 @@ Object.defineProperty(exports, "TasksExplorerApi", ({ enumerable: true, get: fun
33150
33486
  exports.UploadConsts = __importStar(__webpack_require__(30875));
33151
33487
  var upload_api_1 = __webpack_require__(61488);
33152
33488
  Object.defineProperty(exports, "UploadApi", ({ enumerable: true, get: function () { return __importDefault(upload_api_1).default; } }));
33489
+ var User_consts_1 = __webpack_require__(38894);
33490
+ Object.defineProperty(exports, "GROUP_VALUES", ({ enumerable: true, get: function () { return User_consts_1.GROUP_VALUES; } }));
33491
+ Object.defineProperty(exports, "UserGroupTypes", ({ enumerable: true, get: function () { return User_consts_1.UserGroupTypes; } }));
33153
33492
  var users_api_1 = __webpack_require__(89549);
33154
33493
  Object.defineProperty(exports, "UsersApi", ({ enumerable: true, get: function () { return __importDefault(users_api_1).default; } }));
33155
33494
  exports.AbortUtils = __importStar(__webpack_require__(34179));