@bringg/dashboard-sdk 9.50.31108-pre → 9.51.0-pre.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.
@@ -18670,6 +18670,7 @@ var RouteOptimizationApi = /** @class */ (function () {
18670
18670
  this.get_optimization_result = new Route_1.Route('/own-fleet-optimization-service/route_optimization/get_optimization_result/{:request_uuid}', 0 /* HttpMethod.GET */);
18671
18671
  this.cancel_requests = new Route_1.Route('/own-fleet-optimization-service/route_optimization/optimization', 4 /* HttpMethod.DELETE */);
18672
18672
  this.assign_users_by_ids = new Route_1.Route('/route_optimizations/assign_users_by_ids', 1 /* HttpMethod.POST */);
18673
+ this.assign_users_by_ids_in_background_process = new Route_1.Route('/own-fleet-optimization-service/route_optimization/assign_users_by_ids', 1 /* HttpMethod.POST */);
18673
18674
  this.update_user_modified_data = new Route_1.Route('/own-fleet-optimization-service/route_optimization/update_user_modified_data', 1 /* HttpMethod.POST */);
18674
18675
  this.assign_user_manual_optimization = new Route_1.Route('/route_optimizations/assign_user_manual_optimization', 1 /* HttpMethod.POST */);
18675
18676
  this.service = new CrudService_1.default(session, '');
@@ -18698,10 +18699,10 @@ var RouteOptimizationApi = /** @class */ (function () {
18698
18699
  routeParams: { request_uuid: request_uuid }
18699
18700
  });
18700
18701
  };
18701
- RouteOptimizationApi.prototype.assignUsersByIds = function (teams) {
18702
+ RouteOptimizationApi.prototype.assignUsersByIds = function (teams, isBackgroundProcess) {
18702
18703
  var fiveMinutesInMs = 1000 * 60 * 5;
18703
18704
  return this.service.handleAuthorizedRequest({
18704
- route: this.assign_users_by_ids,
18705
+ route: isBackgroundProcess ? this.assign_users_by_ids_in_background_process : this.assign_users_by_ids,
18705
18706
  extractor: RouteGenerator_1.defaultExtractor,
18706
18707
  exceptionProducer: BringgException_1.BringgException.serviceException('Failed to assign users by id'),
18707
18708
  payload: { origin: 'route_optimization', teams: teams },
@@ -22377,7 +22378,7 @@ var lodash_1 = __webpack_require__(96486);
22377
22378
  var BringgException_1 = __webpack_require__(43605);
22378
22379
  var Logger_1 = __importDefault(__webpack_require__(55860));
22379
22380
  var abort_1 = __webpack_require__(34179);
22380
- var version = '9.50.31108-pre';
22381
+ var version = '9.51.0-pre.1';
22381
22382
  function logErrorResponse(response) {
22382
22383
  var data = response.data, status = response.status;
22383
22384
  try {
@@ -29591,7 +29592,7 @@ var __values = (this && this.__values) || function(o) {
29591
29592
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
29592
29593
  };
29593
29594
  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;
29595
+ 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
29596
  var UserHelpers_1 = __webpack_require__(2450);
29596
29597
  var UsersScopes;
29597
29598
  (function (UsersScopes) {
@@ -29612,9 +29613,13 @@ exports.countExtractor = countExtractor;
29612
29613
  var successExtractor = function (response) { return response.success; };
29613
29614
  exports.successExtractor = successExtractor;
29614
29615
  exports.baseRoute = '/users';
29615
- exports.Routes = {
29616
+ exports.ROUTES = {
29616
29617
  GET_ALL: exports.baseRoute,
29617
- GET_DRIVERS_BY_TEAM: '/teams/{:teamId}/users'
29618
+ GET_DRIVERS_BY_TEAM: '/teams/{:teamId}/users',
29619
+ UNLOCK: "".concat(exports.baseRoute, "/{:userId}/unlock"),
29620
+ MESSAGE_DRIVER: '/announcement/user/{:userId}',
29621
+ VALIDATE_PHONE: '/api/user/validate_phone',
29622
+ DELETE_MANY: '/users/batch_delete'
29618
29623
  };
29619
29624
  var UserEvents;
29620
29625
  (function (UserEvents) {
@@ -29668,6 +29673,8 @@ exports.userToGroupsMapper = userToGroupsMapper;
29668
29673
  var RealtimeEvents;
29669
29674
  (function (RealtimeEvents) {
29670
29675
  RealtimeEvents["Update"] = "employee update";
29676
+ RealtimeEvents["Create"] = "new employee";
29677
+ RealtimeEvents["Delete"] = "delete employee";
29671
29678
  })(RealtimeEvents = exports.RealtimeEvents || (exports.RealtimeEvents = {}));
29672
29679
  //# sourceMappingURL=User.consts.js.map
29673
29680
 
@@ -30083,23 +30090,50 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30083
30090
  return (mod && mod.__esModule) ? mod : { "default": mod };
30084
30091
  };
30085
30092
  Object.defineProperty(exports, "__esModule", ({ value: true }));
30093
+ var lodash_1 = __webpack_require__(96486);
30094
+ var BringgException_1 = __webpack_require__(43605);
30095
+ var ExceptionReason_1 = __webpack_require__(73532);
30086
30096
  var merge_mapper_1 = __webpack_require__(59200);
30087
30097
  var storable_realtime_subscriptions_1 = __importDefault(__webpack_require__(1227));
30098
+ var data_entity_1 = __webpack_require__(91083);
30088
30099
  var data_store_1 = __importDefault(__webpack_require__(73135));
30089
30100
  var storable_data_service_1 = __importDefault(__webpack_require__(45297));
30101
+ var keyset_pagination_consts_1 = __webpack_require__(92400);
30090
30102
  var User_consts_1 = __webpack_require__(38894);
30091
30103
  var users_service_1 = __importDefault(__webpack_require__(38267));
30092
30104
  var UsersApi = /** @class */ (function () {
30093
30105
  function UsersApi(session) {
30094
30106
  var _this = this;
30095
- this.userStore = new data_store_1.default(undefined, { shallow: true });
30107
+ var groupFilters = [
30108
+ {
30109
+ groupType: User_consts_1.UserGroupTypes.Main,
30110
+ keyFunc: function (user) { return (0, User_consts_1.userToGroupsMapper)(user); }
30111
+ },
30112
+ {
30113
+ groupType: 'team',
30114
+ keyFunc: function (user) { return user.team_ids || []; }
30115
+ }
30116
+ ];
30117
+ this.userStore = new data_store_1.default(groupFilters, { shallow: true });
30096
30118
  this.usersService = new users_service_1.default(session);
30097
30119
  this.storableDataService = new storable_data_service_1.default(this.userStore, function (user) {
30098
30120
  return merge_mapper_1.mergeMapper.mergeIntoExisting(_this.userStore, user);
30099
30121
  });
30100
30122
  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 }]);
30123
+ this.storableRealtimeSubscriptions.updateStoreOnEvents([
30124
+ { name: User_consts_1.RealtimeEvents.Update, isDelete: false },
30125
+ { name: User_consts_1.RealtimeEvents.Create, isDelete: false },
30126
+ { name: User_consts_1.RealtimeEvents.Delete, isDelete: true }
30127
+ ]);
30102
30128
  }
30129
+ // public updateStoreOnEvents() {
30130
+ // // This mirrors the pattern from TasksApi and other v2 APIs
30131
+ // this.storableRealtimeSubscriptions.updateStoreOnEvents([
30132
+ // { name: RealtimeEvents.Update, isDelete: false },
30133
+ // { name: RealtimeEvents.Create, isDelete: false },
30134
+ // { name: RealtimeEvents.Delete, isDelete: true }
30135
+ // ]);
30136
+ // }
30103
30137
  UsersApi.prototype.delete = function (userId) {
30104
30138
  return __awaiter(this, void 0, void 0, function () {
30105
30139
  var response;
@@ -30123,69 +30157,226 @@ var UsersApi = /** @class */ (function () {
30123
30157
  });
30124
30158
  });
30125
30159
  };
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 () {
30160
+ UsersApi.prototype.deleteMany = function (userIds) {
30161
+ return __awaiter(this, void 0, void 0, function () {
30129
30162
  var response;
30163
+ var _this = this;
30130
30164
  return __generator(this, function (_a) {
30131
30165
  switch (_a.label) {
30132
- case 0: return [4 /*yield*/, this.usersService.loadAll({}, options)];
30166
+ case 0: return [4 /*yield*/, this.storableDataService.deleteMany('deleteMany', function () { return __awaiter(_this, void 0, void 0, function () {
30167
+ return __generator(this, function (_a) {
30168
+ switch (_a.label) {
30169
+ case 0: return [4 /*yield*/, this.usersService.deleteMany(userIds)];
30170
+ case 1:
30171
+ response = _a.sent();
30172
+ return [2 /*return*/, response];
30173
+ }
30174
+ });
30175
+ }); }, userIds)];
30133
30176
  case 1:
30134
- response = _a.sent();
30135
- return [2 /*return*/, response.users];
30177
+ _a.sent();
30178
+ return [2 /*return*/, response];
30136
30179
  }
30137
30180
  });
30138
- }); }, options);
30181
+ });
30139
30182
  };
30140
- UsersApi.prototype.getGroup = function (group) {
30141
- return this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, group);
30183
+ UsersApi.prototype.create = function (user) {
30184
+ return __awaiter(this, void 0, void 0, function () {
30185
+ var _this = this;
30186
+ return __generator(this, function (_a) {
30187
+ if ((0, lodash_1.isNil)(user.email) && (0, lodash_1.isNil)(user.phone)) {
30188
+ throw new BringgException_1.BringgException(ExceptionReason_1.ExceptionReason.INVALID_ARGUMENTS, 'Phone or Email is required');
30189
+ }
30190
+ return [2 /*return*/, this.storableDataService.modify('create', function () { return _this.usersService.create(user); })];
30191
+ });
30192
+ });
30142
30193
  };
30143
- UsersApi.prototype.get = function (id) {
30144
- return this.userStore.get(id);
30194
+ UsersApi.prototype.update = function (userId, userDelta) {
30195
+ return __awaiter(this, void 0, void 0, function () {
30196
+ var _this = this;
30197
+ return __generator(this, function (_a) {
30198
+ return [2 /*return*/, this.storableDataService.modify('update', function () { return _this.usersService.update(userId, userDelta); }, function (modifiedUser) {
30199
+ var currentUser = _this.usersService.session.user;
30200
+ if (currentUser.id === modifiedUser.current.id) {
30201
+ _this.usersService.session.user = (0, lodash_1.merge)(currentUser, modifiedUser.current);
30202
+ _this.usersService.session.sendDataEvent(User_consts_1.UserEvents.CURRENT_USER_UPDATED, _this.usersService.session.user);
30203
+ }
30204
+ })];
30205
+ });
30206
+ });
30145
30207
  };
30146
- UsersApi.prototype.getMany = function (ids) {
30147
- return this.userStore.getMany(ids);
30208
+ UsersApi.prototype.load = function (userId, options) {
30209
+ if (options === void 0) { options = data_entity_1.DEFAULT_OPTIONS; }
30210
+ return __awaiter(this, void 0, void 0, function () {
30211
+ var _this = this;
30212
+ return __generator(this, function (_a) {
30213
+ return [2 /*return*/, this.storableDataService.load('load', function () { return _this.usersService.get(userId); }, userId, options)];
30214
+ });
30215
+ });
30148
30216
  };
30149
30217
  UsersApi.prototype.loadMany = function (ids, options) {
30150
30218
  if (options === void 0) { options = { useCache: true }; }
30151
30219
  return __awaiter(this, void 0, void 0, function () {
30220
+ var chunkSize;
30152
30221
  var _this = this;
30153
30222
  return __generator(this, function (_a) {
30154
- // If no IDs provided, return empty array without making API call
30155
30223
  if (ids.length === 0) {
30156
30224
  return [2 /*return*/, []];
30157
30225
  }
30226
+ chunkSize = options.chunkSize || 500;
30158
30227
  return [2 /*return*/, this.storableDataService.loadMany('loadMany', function (idsToLoad) { return __awaiter(_this, void 0, void 0, function () {
30228
+ var users;
30229
+ return __generator(this, function (_a) {
30230
+ switch (_a.label) {
30231
+ case 0: return [4 /*yield*/, this.usersService.loadMany({ ids: idsToLoad, limit: chunkSize })];
30232
+ case 1:
30233
+ users = _a.sent();
30234
+ return [2 /*return*/, users];
30235
+ }
30236
+ });
30237
+ }); }, ids, __assign(__assign({}, options), { chunkSize: chunkSize }))];
30238
+ });
30239
+ });
30240
+ };
30241
+ UsersApi.prototype.loadAllByTeam = function (teamId, options) {
30242
+ return __awaiter(this, void 0, void 0, function () {
30243
+ var _this = this;
30244
+ return __generator(this, function (_a) {
30245
+ return [2 /*return*/, this.storableDataService.loadAll('loadDriversByTeam', function () { return __awaiter(_this, void 0, void 0, function () {
30246
+ var users;
30247
+ return __generator(this, function (_a) {
30248
+ switch (_a.label) {
30249
+ case 0: return [4 /*yield*/, this.usersService.loadAllByTeams(teamId)];
30250
+ case 1:
30251
+ users = _a.sent();
30252
+ return [2 /*return*/, users];
30253
+ }
30254
+ });
30255
+ }); }, __assign(__assign({}, options), { groupType: 'team', groupValue: teamId }))];
30256
+ });
30257
+ });
30258
+ };
30259
+ // Pagination methods
30260
+ UsersApi.prototype.loadAll = function (options) {
30261
+ return __awaiter(this, void 0, void 0, function () {
30262
+ var _this = this;
30263
+ return __generator(this, function (_a) {
30264
+ return [2 /*return*/, this.storableDataService.loadAll('loadAll', function () { return __awaiter(_this, void 0, void 0, function () {
30159
30265
  var response;
30160
30266
  return __generator(this, function (_a) {
30161
30267
  switch (_a.label) {
30162
- case 0: return [4 /*yield*/, this.usersService.loadAll({ ids: idsToLoad })];
30268
+ case 0: return [4 /*yield*/, this.usersService.loadAll({}, { signal: options === null || options === void 0 ? void 0 : options.signal })];
30163
30269
  case 1:
30164
30270
  response = _a.sent();
30165
30271
  return [2 /*return*/, response.users];
30166
30272
  }
30167
30273
  });
30168
- }); }, ids, __assign(__assign({}, options), { chunkSize: options.chunkSize || 500 }))];
30274
+ }); }, options)];
30169
30275
  });
30170
30276
  });
30171
30277
  };
30172
- UsersApi.prototype.onUpdate = function (callback) {
30173
- return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Update, callback);
30174
- };
30175
- UsersApi.prototype.loadDriversByTeam = function (teamId) {
30278
+ UsersApi.prototype.getAllDrivers = function (_a) {
30279
+ 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
30280
  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)];
30281
+ var optionsWithDefaults, loadResult;
30282
+ var _this = this;
30283
+ return __generator(this, function (_d) {
30284
+ switch (_d.label) {
30285
+ case 0:
30286
+ optionsWithDefaults = (0, lodash_1.defaults)(options, { onlyOnlineDriver: false, onlyCustomers: false });
30287
+ return [4 /*yield*/, this.storableDataService.loadAll('getAllDrivers', function () { return __awaiter(_this, void 0, void 0, function () {
30288
+ var result;
30289
+ return __generator(this, function (_a) {
30290
+ switch (_a.label) {
30291
+ case 0: return [4 /*yield*/, this.usersService.getAllDrivers({
30292
+ limit: limit,
30293
+ page_action: page_action,
30294
+ cursor: cursor,
30295
+ options: optionsWithDefaults
30296
+ })];
30297
+ case 1:
30298
+ result = _a.sent();
30299
+ loadResult = result;
30300
+ return [2 /*return*/, result.users];
30301
+ }
30302
+ });
30303
+ }); }, {
30304
+ useCache: true,
30305
+ // Group drivers appropriately based on options
30306
+ groupType: User_consts_1.UserGroupTypes.Main,
30307
+ groupValue: optionsWithDefaults.onlyCustomers ? User_consts_1.GROUP_VALUES.Customers : User_consts_1.GROUP_VALUES.Drivers
30308
+ })];
30181
30309
  case 1:
30182
- users = _a.sent();
30183
- this.storableDataService.updateManyInStores(users);
30184
- return [2 /*return*/, users];
30310
+ _d.sent();
30311
+ return [2 /*return*/, __assign(__assign({}, loadResult), { users: loadResult.users.map(function (user) { return _this.userStore.get(user.id); }) })];
30185
30312
  }
30186
30313
  });
30187
30314
  });
30188
30315
  };
30316
+ // Business logic methods
30317
+ UsersApi.prototype.messageDriver = function (userId, message) {
30318
+ return __awaiter(this, void 0, void 0, function () {
30319
+ return __generator(this, function (_a) {
30320
+ return [2 /*return*/, this.usersService.messageDriver(userId, message)];
30321
+ });
30322
+ });
30323
+ };
30324
+ UsersApi.prototype.unlock = function (userId) {
30325
+ return __awaiter(this, void 0, void 0, function () {
30326
+ return __generator(this, function (_a) {
30327
+ return [2 /*return*/, this.usersService.unlock(userId)];
30328
+ });
30329
+ });
30330
+ };
30331
+ UsersApi.prototype.validatePhone = function (phone) {
30332
+ return __awaiter(this, void 0, void 0, function () {
30333
+ return __generator(this, function (_a) {
30334
+ return [2 /*return*/, this.usersService.validatePhone(phone)];
30335
+ });
30336
+ });
30337
+ };
30338
+ // Store query methods - direct access to local store without API calls
30339
+ UsersApi.prototype.getGroup = function (group) {
30340
+ return this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, group);
30341
+ };
30342
+ UsersApi.prototype.getTeamGroup = function (teamId) {
30343
+ return this.userStore.getGroup('team', teamId);
30344
+ };
30345
+ UsersApi.prototype.get = function (id) {
30346
+ return this.userStore.get(id);
30347
+ };
30348
+ UsersApi.prototype.getMany = function (ids) {
30349
+ return this.userStore.getMany(ids);
30350
+ };
30351
+ UsersApi.prototype.getAll = function () {
30352
+ return this.userStore.getAll();
30353
+ };
30354
+ UsersApi.prototype.getOfflineDrivers = function () {
30355
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OfflineDrivers);
30356
+ return group ? Array.from(group) : [];
30357
+ };
30358
+ UsersApi.prototype.getOnlineDrivers = function () {
30359
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OnlineDrivers);
30360
+ return group ? Array.from(group) : [];
30361
+ };
30362
+ UsersApi.prototype.getAllLocalDrivers = function () {
30363
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.Drivers);
30364
+ return group ? Array.from(group) : [];
30365
+ };
30366
+ UsersApi.prototype.getOnShiftDrivers = function () {
30367
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OnShiftDrivers);
30368
+ return group ? Array.from(group) : [];
30369
+ };
30370
+ // Additional callback methods
30371
+ UsersApi.prototype.onCreate = function (callback) {
30372
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Create, callback);
30373
+ };
30374
+ UsersApi.prototype.onUpdate = function (callback) {
30375
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Update, callback);
30376
+ };
30377
+ UsersApi.prototype.onDelete = function (callback) {
30378
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Delete, callback);
30379
+ };
30189
30380
  return UsersApi;
30190
30381
  }());
30191
30382
  exports["default"] = UsersApi;
@@ -30244,6 +30435,13 @@ var UsersService = /** @class */ (function () {
30244
30435
  function UsersService(session) {
30245
30436
  this.service = new CrudService_1.default(session, 'users');
30246
30437
  }
30438
+ Object.defineProperty(UsersService.prototype, "session", {
30439
+ get: function () {
30440
+ return this.service.session;
30441
+ },
30442
+ enumerable: false,
30443
+ configurable: true
30444
+ });
30247
30445
  UsersService.prototype.delete = function (userId) {
30248
30446
  return __awaiter(this, void 0, void 0, function () {
30249
30447
  return __generator(this, function (_a) {
@@ -30251,20 +30449,63 @@ var UsersService = /** @class */ (function () {
30251
30449
  });
30252
30450
  });
30253
30451
  };
30452
+ UsersService.prototype.deleteMany = function (userIds) {
30453
+ return __awaiter(this, void 0, void 0, function () {
30454
+ return __generator(this, function (_a) {
30455
+ return [2 /*return*/, this.service.routeGenerator
30456
+ .delete(User_consts_1.ROUTES.DELETE_MANY)
30457
+ .withPayload({ ids: userIds })
30458
+ .withExtractor(function (response) { return response; })
30459
+ .setException('Could not delete users')
30460
+ .invoke()];
30461
+ });
30462
+ });
30463
+ };
30464
+ UsersService.prototype.create = function (user) {
30465
+ return __awaiter(this, void 0, void 0, function () {
30466
+ return __generator(this, function (_a) {
30467
+ return [2 /*return*/, this.service.create(user).then(function (response) { return response.user; })];
30468
+ });
30469
+ });
30470
+ };
30471
+ UsersService.prototype.update = function (userId, userDelta) {
30472
+ return __awaiter(this, void 0, void 0, function () {
30473
+ return __generator(this, function (_a) {
30474
+ return [2 /*return*/, this.service.update(userId, userDelta).then(function (response) { return response.user; })];
30475
+ });
30476
+ });
30477
+ };
30478
+ UsersService.prototype.get = function (userId) {
30479
+ return __awaiter(this, void 0, void 0, function () {
30480
+ return __generator(this, function (_a) {
30481
+ return [2 /*return*/, this.service.get(userId).then(function (user) { return user; })];
30482
+ });
30483
+ });
30484
+ };
30254
30485
  UsersService.prototype.loadAll = function (query, commonOptions) {
30255
30486
  if (query === void 0) { query = {}; }
30256
30487
  return __awaiter(this, void 0, void 0, function () {
30257
30488
  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
- }
30489
+ return [2 /*return*/, this.service.routeGenerator
30490
+ .get(User_consts_1.ROUTES.GET_ALL)
30491
+ .withQueryString(query)
30492
+ .withExtractor(function (response) { return ({ has_next_page: response.has_next_page, users: response.users }); })
30493
+ .setException('Could not get users')
30494
+ .withCommonOptions(commonOptions)
30495
+ .invoke()];
30496
+ });
30497
+ });
30498
+ };
30499
+ UsersService.prototype.loadMany = function (query, commonOptions) {
30500
+ if (query === void 0) { query = {}; }
30501
+ return __awaiter(this, void 0, void 0, function () {
30502
+ return __generator(this, function (_a) {
30503
+ return [2 /*return*/, this.service.routeGenerator
30504
+ .get(User_consts_1.ROUTES.GET_ALL)
30505
+ .withQueryString(query)
30506
+ .setException('Could not get users by ids')
30507
+ .withCommonOptions(commonOptions)
30508
+ .invoke()];
30268
30509
  });
30269
30510
  });
30270
30511
  };
@@ -30272,7 +30513,7 @@ var UsersService = /** @class */ (function () {
30272
30513
  return __awaiter(this, void 0, void 0, function () {
30273
30514
  return __generator(this, function (_a) {
30274
30515
  return [2 /*return*/, this.service.routeGenerator
30275
- .get(User_consts_1.Routes.GET_DRIVERS_BY_TEAM)
30516
+ .get(User_consts_1.ROUTES.GET_DRIVERS_BY_TEAM)
30276
30517
  .withRouteParams({ teamId: teamId })
30277
30518
  .setException("failed to get teams drivers for team ".concat(teamId))
30278
30519
  .withCommonOptions(commonOptions)
@@ -30280,6 +30521,90 @@ var UsersService = /** @class */ (function () {
30280
30521
  });
30281
30522
  });
30282
30523
  };
30524
+ /**
30525
+ * Generic method for keyset pagination with optional scoping
30526
+ */
30527
+ UsersService.prototype.getAllUsersWithKeysetPagination = function (request, scopes, exceptionMessage) {
30528
+ if (scopes === void 0) { scopes = []; }
30529
+ if (exceptionMessage === void 0) { exceptionMessage = 'Could not get users'; }
30530
+ return __awaiter(this, void 0, void 0, function () {
30531
+ var limit, page_action, cursor, options, queryParams;
30532
+ return __generator(this, function (_a) {
30533
+ limit = request.limit, page_action = request.page_action, cursor = request.cursor, options = request.options;
30534
+ // Add driver-specific scopes if options are provided
30535
+ if (options) {
30536
+ if (options.onlyCustomers) {
30537
+ scopes.push(User_consts_1.UsersScopes.CUSTOMERS);
30538
+ }
30539
+ else if (!scopes.includes(User_consts_1.UsersScopes.ADMINS) && !scopes.includes(User_consts_1.UsersScopes.DISPATCHERS)) {
30540
+ // Only add DRIVERS scope if we're not already dealing with admins/dispatchers
30541
+ scopes.push(User_consts_1.UsersScopes.DRIVERS);
30542
+ }
30543
+ if (options.onlyOnlineDriver) {
30544
+ scopes.push(User_consts_1.UsersScopes.MARKED_AS_ONLINE);
30545
+ }
30546
+ }
30547
+ queryParams = { pgver: '2', limit: limit, page_action: page_action, cursor: cursor };
30548
+ if (scopes.length > 0) {
30549
+ queryParams.scopes = scopes;
30550
+ }
30551
+ return [2 /*return*/, this.service.routeGenerator
30552
+ .get(User_consts_1.ROUTES.GET_ALL)
30553
+ .withQueryString(queryParams)
30554
+ .withExtractor(function (response) { return ({
30555
+ next_page_cursor: response.next_page_cursor,
30556
+ previous_page_cursor: response.previous_page_cursor,
30557
+ users: response.users
30558
+ }); })
30559
+ .setException(exceptionMessage)
30560
+ .invoke()];
30561
+ });
30562
+ });
30563
+ };
30564
+ UsersService.prototype.getAllDrivers = function (request) {
30565
+ return __awaiter(this, void 0, void 0, function () {
30566
+ return __generator(this, function (_a) {
30567
+ return [2 /*return*/, this.getAllUsersWithKeysetPagination(request, [], 'Could not get all drivers')];
30568
+ });
30569
+ });
30570
+ };
30571
+ UsersService.prototype.unlock = function (userId) {
30572
+ return __awaiter(this, void 0, void 0, function () {
30573
+ return __generator(this, function (_a) {
30574
+ return [2 /*return*/, this.service.routeGenerator
30575
+ .post(User_consts_1.ROUTES.UNLOCK)
30576
+ .withRouteParams({ userId: userId })
30577
+ .withExtractor(User_consts_1.successExtractor)
30578
+ .setException("Could not unlock user with id: ".concat(userId))
30579
+ .invoke()];
30580
+ });
30581
+ });
30582
+ };
30583
+ UsersService.prototype.validatePhone = function (phone) {
30584
+ return __awaiter(this, void 0, void 0, function () {
30585
+ return __generator(this, function (_a) {
30586
+ return [2 /*return*/, this.service.routeGenerator
30587
+ .get(User_consts_1.ROUTES.VALIDATE_PHONE)
30588
+ .withQueryString({ phone: phone })
30589
+ .withExtractor(function (response) { return response.phone_valid; })
30590
+ .setException("Phone is not valid: ".concat(phone))
30591
+ .invoke()];
30592
+ });
30593
+ });
30594
+ };
30595
+ UsersService.prototype.messageDriver = function (userId, message) {
30596
+ return __awaiter(this, void 0, void 0, function () {
30597
+ return __generator(this, function (_a) {
30598
+ return [2 /*return*/, this.service.routeGenerator
30599
+ .put(User_consts_1.ROUTES.MESSAGE_DRIVER)
30600
+ .withRouteParams({ userId: userId })
30601
+ .withPayload({ user_id: userId, message: message })
30602
+ .withExtractor(function (response) { return response.announcement_id; })
30603
+ .setException("Could not message to user ".concat(userId))
30604
+ .invoke()];
30605
+ });
30606
+ });
30607
+ };
30283
30608
  return UsersService;
30284
30609
  }());
30285
30610
  exports["default"] = UsersService;
@@ -31026,9 +31351,6 @@ var VehicleEntity = /** @class */ (function (_super) {
31026
31351
  });
31027
31352
  });
31028
31353
  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
31354
  };
31033
31355
  VehicleEntity.prototype.getAll = function () {
31034
31356
  return this.getAllOrFetch(null, Vehicle_consts_1.vehiclesExtractor, Vehicle_consts_1.vehiclesExtractor);
@@ -31285,7 +31607,7 @@ var VehiclesApi = /** @class */ (function () {
31285
31607
  return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, function (item) { return callback(item.current); });
31286
31608
  };
31287
31609
  VehiclesApi.prototype.onDelete = function (callback) {
31288
- return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) { return callback(item.diff); });
31610
+ return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) { return callback(item.current); });
31289
31611
  };
31290
31612
  VehiclesApi.prototype.onUnassigned = function (callback) {
31291
31613
  return this.storableRealtimeSubscriptions.onAnyEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UNASSIGNED, function (vehicle) {
@@ -33091,7 +33413,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33091
33413
  return (mod && mod.__esModule) ? mod : { "default": mod };
33092
33414
  };
33093
33415
  Object.defineProperty(exports, "__esModule", ({ value: true }));
33094
- 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;
33416
+ 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;
33095
33417
  __exportStar(__webpack_require__(37360), exports);
33096
33418
  __exportStar(__webpack_require__(5655), exports);
33097
33419
  exports.ChatConversationConsts = __importStar(__webpack_require__(44448));
@@ -33145,6 +33467,9 @@ Object.defineProperty(exports, "TasksExplorerApi", ({ enumerable: true, get: fun
33145
33467
  exports.UploadConsts = __importStar(__webpack_require__(30875));
33146
33468
  var upload_api_1 = __webpack_require__(61488);
33147
33469
  Object.defineProperty(exports, "UploadApi", ({ enumerable: true, get: function () { return __importDefault(upload_api_1).default; } }));
33470
+ var User_consts_1 = __webpack_require__(38894);
33471
+ Object.defineProperty(exports, "GROUP_VALUES", ({ enumerable: true, get: function () { return User_consts_1.GROUP_VALUES; } }));
33472
+ Object.defineProperty(exports, "UserGroupTypes", ({ enumerable: true, get: function () { return User_consts_1.UserGroupTypes; } }));
33148
33473
  var users_api_1 = __webpack_require__(89549);
33149
33474
  Object.defineProperty(exports, "UsersApi", ({ enumerable: true, get: function () { return __importDefault(users_api_1).default; } }));
33150
33475
  exports.AbortUtils = __importStar(__webpack_require__(34179));