@bringg/dashboard-sdk 9.50.31108-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.
@@ -56,7 +56,7 @@ var lodash_1 = require("lodash");
56
56
  var BringgException_1 = require("../Core/BringgException");
57
57
  var Logger_1 = __importDefault(require("../Core/Logger"));
58
58
  var abort_1 = require("../utils/abort");
59
- var version = '9.50.31108-pre';
59
+ var version = '9.51.0-pre.0';
60
60
  function logErrorResponse(response) {
61
61
  var data = response.data, status = response.status;
62
62
  try {
@@ -4,7 +4,7 @@ import Session from '../../Services/Identity/Session';
4
4
  import { PubSubService } from '../../Services/PubSubService';
5
5
  import { KeysetPaginationRequest } from '../../utils/consts/keyset-pagination.consts';
6
6
  import UsersStore from '../Store/UsersStore';
7
- import { AllDriversRepsonse, AllUsersKeysetPaginationResponse, AllUsersRepsonse } from '../User.consts';
7
+ import { AllDriversResponse, AllUsersKeysetPaginationResponse, AllUsersResponse } from '../User.consts';
8
8
  import { GetAllDriversOptions } from '../Users';
9
9
  export default class UsersService extends PubSubService {
10
10
  store: UsersStore;
@@ -16,8 +16,8 @@ export default class UsersService extends PubSubService {
16
16
  usersIds: number[];
17
17
  page?: number;
18
18
  limit?: number;
19
- }, commonOptions?: CommonOptions): Promise<AllUsersRepsonse>;
20
- getAll(page?: number, limit?: number): Promise<AllUsersRepsonse>;
19
+ }, commonOptions?: CommonOptions): Promise<AllUsersResponse>;
20
+ getAll(page?: number, limit?: number): Promise<AllUsersResponse>;
21
21
  getAllKeysetPagination(request: KeysetPaginationRequest<null>): Promise<AllUsersKeysetPaginationResponse>;
22
22
  invite(userId: number): Promise<User>;
23
23
  unlock(userId: number): Promise<boolean>;
@@ -29,7 +29,7 @@ export default class UsersService extends PubSubService {
29
29
  closedTasks(userId: number, page?: number): Promise<Task[]>;
30
30
  update(id: number, userDelta: Partial<User>): Promise<User>;
31
31
  getAllAdminsAndDispatchers(request: KeysetPaginationRequest<null>): Promise<AllUsersKeysetPaginationResponse>;
32
- getAllDrivers(request: KeysetPaginationRequest<GetAllDriversOptions>): Promise<AllDriversRepsonse>;
32
+ getAllDrivers(request: KeysetPaginationRequest<GetAllDriversOptions>): Promise<AllDriversResponse>;
33
33
  delete(id: number): Promise<boolean>;
34
34
  getProfileImage(userId: number): Promise<string>;
35
35
  messageDriver(userId: number, message: string): Promise<number>;
@@ -4,7 +4,7 @@ import { CommonOptions } from '../../Core/RouteGenerator';
4
4
  import Session from '../../Services/Identity/Session';
5
5
  import { KeysetPaginationRequest } from '../../utils/consts/keyset-pagination.consts';
6
6
  import UsersService from '../Service/UsersService';
7
- import { AllDriversRepsonse, AllUsersKeysetPaginationResponse, AllUsersRepsonse, GROUP_VALUES } from '../User.consts';
7
+ import { AllDriversResponse, AllUsersKeysetPaginationResponse, AllUsersResponse, GROUP_VALUES } from '../User.consts';
8
8
  import { GetAllDriversOptions } from '../Users';
9
9
  export type UserGroupValue = Map<GROUP_VALUES, Set<User>>;
10
10
  export default class UsersStore extends BaseStore<User> {
@@ -23,12 +23,12 @@ export default class UsersStore extends BaseStore<User> {
23
23
  private initGroups;
24
24
  create(user: Partial<User>): Promise<User>;
25
25
  getDriversByTeam(teamId: number): Promise<Driver[]>;
26
- getAll(page?: number, limit?: number): Promise<AllUsersRepsonse>;
26
+ getAll(page?: number, limit?: number): Promise<AllUsersResponse>;
27
27
  getAllKeysetPagination(request: KeysetPaginationRequest<null>): Promise<AllUsersKeysetPaginationResponse>;
28
28
  invite(userId: number): Promise<User>;
29
29
  inviteByEmail(userId: number): Promise<User>;
30
30
  getAllAdminsAndDispatchers(request: KeysetPaginationRequest<null>): Promise<AllUsersKeysetPaginationResponse>;
31
- getAllDrivers(request: KeysetPaginationRequest<GetAllDriversOptions>): Promise<AllDriversRepsonse>;
31
+ getAllDrivers(request: KeysetPaginationRequest<GetAllDriversOptions>): Promise<AllDriversResponse>;
32
32
  private getOrFetchUsers;
33
33
  byUserType(userTypeId: number): Promise<Driver[]>;
34
34
  makeAdmin(userId: number): Promise<Admin>;
@@ -42,7 +42,7 @@ export type MakeAdminResponceFormat = {
42
42
  success: boolean;
43
43
  user: User;
44
44
  };
45
- export type AllUsersRepsonse = {
45
+ export type AllUsersResponse = {
46
46
  has_next_page: boolean;
47
47
  users: User[];
48
48
  };
@@ -54,16 +54,20 @@ export declare enum UsersScopes {
54
54
  MARKED_AS_ONLINE = "marked_as_online"
55
55
  }
56
56
  export type AllUsersKeysetPaginationResponse = KeysetPaginationResponse<'users', User[]>;
57
- export type AllDriversRepsonse = KeysetPaginationResponse<'users', Driver[]>;
57
+ export type AllDriversResponse = KeysetPaginationResponse<'users', Driver[]>;
58
58
  export declare const defaultExtractor: (response: any) => any;
59
59
  export declare const userExtractor: (response: any) => any;
60
60
  export declare const usersExtractor: (response: any) => any;
61
61
  export declare const countExtractor: (response: any) => any;
62
62
  export declare const successExtractor: (response: any) => any;
63
63
  export declare const baseRoute = "/users";
64
- export declare const Routes: {
64
+ export declare const ROUTES: {
65
65
  GET_ALL: string;
66
66
  GET_DRIVERS_BY_TEAM: string;
67
+ UNLOCK: string;
68
+ MESSAGE_DRIVER: string;
69
+ VALIDATE_PHONE: string;
70
+ DELETE_MANY: string;
67
71
  };
68
72
  export declare enum UserEvents {
69
73
  CURRENT_USER_UPDATED = "currentUserUpdated"
@@ -83,5 +87,19 @@ export declare enum GROUP_VALUES {
83
87
  export declare const groupFilter: Map<GROUP_VALUES, (user: User) => boolean>;
84
88
  export declare const userToGroupsMapper: (user: User) => any[];
85
89
  export declare enum RealtimeEvents {
86
- Update = "employee update"
90
+ Update = "employee update",
91
+ Create = "new employee",
92
+ Delete = "delete employee"
87
93
  }
94
+ export type DeleteManyResponse = {
95
+ success: boolean;
96
+ rc: number;
97
+ deleted_count: number;
98
+ deleted_users: number[];
99
+ failed_count: number;
100
+ errors?: {
101
+ rc: number;
102
+ message: string;
103
+ user_ids: number[];
104
+ }[];
105
+ };
@@ -11,7 +11,7 @@ var __values = (this && this.__values) || function(o) {
11
11
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- 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;
14
+ 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;
15
15
  var UserHelpers_1 = require("./UserHelpers");
16
16
  var UsersScopes;
17
17
  (function (UsersScopes) {
@@ -32,9 +32,13 @@ exports.countExtractor = countExtractor;
32
32
  var successExtractor = function (response) { return response.success; };
33
33
  exports.successExtractor = successExtractor;
34
34
  exports.baseRoute = '/users';
35
- exports.Routes = {
35
+ exports.ROUTES = {
36
36
  GET_ALL: exports.baseRoute,
37
- GET_DRIVERS_BY_TEAM: '/teams/{:teamId}/users'
37
+ GET_DRIVERS_BY_TEAM: '/teams/{:teamId}/users',
38
+ UNLOCK: "".concat(exports.baseRoute, "/{:userId}/unlock"),
39
+ MESSAGE_DRIVER: '/announcement/user/{:userId}',
40
+ VALIDATE_PHONE: '/api/user/validate_phone',
41
+ DELETE_MANY: '/users/batch_delete'
38
42
  };
39
43
  var UserEvents;
40
44
  (function (UserEvents) {
@@ -88,5 +92,7 @@ exports.userToGroupsMapper = userToGroupsMapper;
88
92
  var RealtimeEvents;
89
93
  (function (RealtimeEvents) {
90
94
  RealtimeEvents["Update"] = "employee update";
95
+ RealtimeEvents["Create"] = "new employee";
96
+ RealtimeEvents["Delete"] = "delete employee";
91
97
  })(RealtimeEvents = exports.RealtimeEvents || (exports.RealtimeEvents = {}));
92
98
  //# sourceMappingURL=User.consts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"User.consts.js","sourceRoot":"","sources":["../../src/User/User.consts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"User.consts.js","sourceRoot":"","sources":["../../src/User/User.consts.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { CommonOptions } from '../Core/RouteGenerator';
3
3
  import Session from '../Services/Identity/Session';
4
4
  import { KeysetPaginationRequest } from '../utils/consts/keyset-pagination.consts';
5
5
  import { UserGroupValue } from './Store/UsersStore';
6
- import { AllDriversRepsonse, AllUsersKeysetPaginationResponse, AllUsersRepsonse } from './User.consts';
6
+ import { AllDriversResponse, AllUsersKeysetPaginationResponse, AllUsersResponse } from './User.consts';
7
7
  export interface GetAllDriversOptions {
8
8
  onlyOnlineDriver?: boolean;
9
9
  onlyCustomers?: boolean;
@@ -18,7 +18,7 @@ export default class Users {
18
18
  constructor(session: Session);
19
19
  create(user: Partial<Bringg.User>): Promise<Bringg.User>;
20
20
  getAllAdminsAndDispatchers({ limit, page_action, cursor }: KeysetPaginationRequest<AllUsersKeysetPaginationResponse>): Promise<AllUsersKeysetPaginationResponse>;
21
- getAllDrivers({ limit, page_action, cursor, options }: KeysetPaginationRequest<GetAllDriversOptions>): Promise<AllDriversRepsonse>;
21
+ getAllDrivers({ limit, page_action, cursor, options }: KeysetPaginationRequest<GetAllDriversOptions>): Promise<AllDriversResponse>;
22
22
  byUserType(userTypeId: number): Promise<Bringg.User[]>;
23
23
  makeAdmin(userId: number): Promise<Bringg.Admin>;
24
24
  totalEmployeesCount(): Promise<number>;
@@ -27,7 +27,7 @@ export default class Users {
27
27
  getDriver(driverId: number): Promise<Bringg.Driver>;
28
28
  getDispatcher(dispatcherId: number): Promise<Bringg.Dispatcher>;
29
29
  getDriversByTeam(teamId: number): Promise<Bringg.Driver[]>;
30
- getAll(page?: number, limit?: number): Promise<AllUsersRepsonse>;
30
+ getAll(page?: number, limit?: number): Promise<AllUsersResponse>;
31
31
  getAllKeysetPagination({ limit, page_action, cursor }: KeysetPaginationRequest<null>): Promise<AllUsersKeysetPaginationResponse>;
32
32
  get(userId: number): Promise<Bringg.User>;
33
33
  getMany(usersIds: number[], commonOptions?: CommonOptions): Promise<Bringg.User[]>;
@@ -1,20 +1,44 @@
1
- import { User } from '@bringg/types';
1
+ import { Driver, User } from '@bringg/types';
2
2
  import { DELETE_RESPONSE } from '../../Core/CrudService';
3
+ import { StorableEventUnsubscribe } from '../../Data/storable-types';
3
4
  import { DataOptions, MappedStorableItem } from '../../data-entity';
4
5
  import Session from '../../Services/Identity/Session';
5
- import { GROUP_VALUES } from '../User.consts';
6
+ import { KeysetPaginationRequest } from '../../utils/consts/keyset-pagination.consts';
7
+ import { AllDriversResponse, DeleteManyResponse, GROUP_VALUES } from '../User.consts';
8
+ import { GetAllDriversOptions } from '../Users';
6
9
  export default class UsersApi {
7
10
  private readonly userStore;
8
11
  private readonly usersService;
9
12
  private readonly storableDataService;
10
13
  private readonly storableRealtimeSubscriptions;
11
14
  constructor(session: Session);
15
+ /**
16
+ * Initialize group filters for user categorization
17
+ * This sets up the realtime subscriptions for proper store management
18
+ * for now keep this, need to check if this is needed
19
+ */
12
20
  delete(userId: number): Promise<DELETE_RESPONSE>;
21
+ deleteMany(userIds: number[]): Promise<DeleteManyResponse>;
22
+ create(user: Partial<User>): Promise<User>;
23
+ update(userId: number, userDelta: Partial<User>): Promise<User>;
24
+ load(userId: number, options?: DataOptions): Promise<User>;
25
+ loadMany(ids: number[], options?: DataOptions): Promise<User[]>;
26
+ loadAllByTeam(teamId: number, options?: DataOptions): Promise<Driver[]>;
13
27
  loadAll(options?: DataOptions): Promise<User[]>;
28
+ getAllDrivers({ limit, page_action, cursor, options }: KeysetPaginationRequest<GetAllDriversOptions>): Promise<AllDriversResponse>;
29
+ messageDriver(userId: number, message: string): Promise<number>;
30
+ unlock(userId: number): Promise<boolean>;
31
+ validatePhone(phone: string): Promise<boolean>;
14
32
  getGroup(group: GROUP_VALUES): User[];
33
+ getTeamGroup(teamId: number): User[] | undefined;
15
34
  get(id: number): User;
16
35
  getMany(ids: number[]): Record<number, User>;
17
- loadMany(ids: number[], options?: DataOptions): Promise<User[]>;
18
- onUpdate(callback: (user: MappedStorableItem<User>) => void): import("../../Data/storable-types").StorableEventUnsubscribe;
19
- loadDriversByTeam(teamId: number): Promise<User[]>;
36
+ getAll(): User[];
37
+ getOfflineDrivers(): User[];
38
+ getOnlineDrivers(): User[];
39
+ getAllLocalDrivers(): User[];
40
+ getOnShiftDrivers(): User[];
41
+ onCreate(callback: (user: MappedStorableItem<User>) => void): StorableEventUnsubscribe;
42
+ onUpdate(callback: (user: MappedStorableItem<User>) => void): StorableEventUnsubscribe;
43
+ onDelete(callback: (user: MappedStorableItem<User>) => void): StorableEventUnsubscribe;
20
44
  }
@@ -50,23 +50,55 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
50
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
+ var lodash_1 = require("lodash");
54
+ var BringgException_1 = require("../../Core/BringgException");
55
+ var ExceptionReason_1 = require("../../Core/ExceptionReason");
53
56
  var merge_mapper_1 = require("../../Data/merge-mapper");
54
57
  var storable_realtime_subscriptions_1 = __importDefault(require("../../Data/storable-realtime-subscriptions"));
58
+ var data_entity_1 = require("../../data-entity");
55
59
  var data_store_1 = __importDefault(require("../../data-store"));
56
60
  var storable_data_service_1 = __importDefault(require("../../storable-data-service"));
61
+ var keyset_pagination_consts_1 = require("../../utils/consts/keyset-pagination.consts");
57
62
  var User_consts_1 = require("../User.consts");
58
63
  var users_service_1 = __importDefault(require("./users-service"));
59
64
  var UsersApi = /** @class */ (function () {
60
65
  function UsersApi(session) {
61
66
  var _this = this;
62
- this.userStore = new data_store_1.default(undefined, { shallow: true });
67
+ var groupFilters = [
68
+ {
69
+ groupType: User_consts_1.UserGroupTypes.Main,
70
+ keyFunc: function (user) { return (0, User_consts_1.userToGroupsMapper)(user); }
71
+ },
72
+ {
73
+ groupType: 'team',
74
+ keyFunc: function (user) { return user.team_ids || []; }
75
+ }
76
+ ];
77
+ this.userStore = new data_store_1.default(groupFilters, { shallow: true });
63
78
  this.usersService = new users_service_1.default(session);
64
79
  this.storableDataService = new storable_data_service_1.default(this.userStore, function (user) {
65
80
  return merge_mapper_1.mergeMapper.mergeIntoExisting(_this.userStore, user);
66
81
  });
67
82
  this.storableRealtimeSubscriptions = new storable_realtime_subscriptions_1.default(session, this.userStore, this.storableDataService);
68
- this.storableRealtimeSubscriptions.updateStoreOnEvents([{ name: User_consts_1.RealtimeEvents.Update, isDelete: false }]);
83
+ this.storableRealtimeSubscriptions.updateStoreOnEvents([
84
+ { name: User_consts_1.RealtimeEvents.Update, isDelete: false },
85
+ { name: User_consts_1.RealtimeEvents.Create, isDelete: false },
86
+ { name: User_consts_1.RealtimeEvents.Delete, isDelete: true }
87
+ ]);
69
88
  }
89
+ /**
90
+ * Initialize group filters for user categorization
91
+ * This sets up the realtime subscriptions for proper store management
92
+ * for now keep this, need to check if this is needed
93
+ */
94
+ // public updateStoreOnEvents() {
95
+ // // This mirrors the pattern from TasksApi and other v2 APIs
96
+ // this.storableRealtimeSubscriptions.updateStoreOnEvents([
97
+ // { name: RealtimeEvents.Update, isDelete: false },
98
+ // { name: RealtimeEvents.Create, isDelete: false },
99
+ // { name: RealtimeEvents.Delete, isDelete: true }
100
+ // ]);
101
+ // }
70
102
  UsersApi.prototype.delete = function (userId) {
71
103
  return __awaiter(this, void 0, void 0, function () {
72
104
  var response;
@@ -90,69 +122,227 @@ var UsersApi = /** @class */ (function () {
90
122
  });
91
123
  });
92
124
  };
93
- UsersApi.prototype.loadAll = function (options) {
94
- var _this = this;
95
- return this.storableDataService.loadAll('loadAll', function () { return __awaiter(_this, void 0, void 0, function () {
125
+ UsersApi.prototype.deleteMany = function (userIds) {
126
+ return __awaiter(this, void 0, void 0, function () {
96
127
  var response;
128
+ var _this = this;
97
129
  return __generator(this, function (_a) {
98
130
  switch (_a.label) {
99
- case 0: return [4 /*yield*/, this.usersService.loadAll({}, options)];
131
+ case 0: return [4 /*yield*/, this.storableDataService.deleteMany('deleteMany', function () { return __awaiter(_this, void 0, void 0, function () {
132
+ return __generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0: return [4 /*yield*/, this.usersService.deleteMany(userIds)];
135
+ case 1:
136
+ response = _a.sent();
137
+ return [2 /*return*/, response];
138
+ }
139
+ });
140
+ }); }, userIds)];
100
141
  case 1:
101
- response = _a.sent();
102
- return [2 /*return*/, response.users];
142
+ _a.sent();
143
+ return [2 /*return*/, response];
103
144
  }
104
145
  });
105
- }); }, options);
146
+ });
106
147
  };
107
- UsersApi.prototype.getGroup = function (group) {
108
- return this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, group);
148
+ UsersApi.prototype.create = function (user) {
149
+ return __awaiter(this, void 0, void 0, function () {
150
+ var _this = this;
151
+ return __generator(this, function (_a) {
152
+ if ((0, lodash_1.isNil)(user.email) && (0, lodash_1.isNil)(user.phone)) {
153
+ throw new BringgException_1.BringgException(ExceptionReason_1.ExceptionReason.INVALID_ARGUMENTS, 'Phone or Email is required');
154
+ }
155
+ return [2 /*return*/, this.storableDataService.modify('create', function () { return _this.usersService.create(user); })];
156
+ });
157
+ });
109
158
  };
110
- UsersApi.prototype.get = function (id) {
111
- return this.userStore.get(id);
159
+ UsersApi.prototype.update = function (userId, userDelta) {
160
+ return __awaiter(this, void 0, void 0, function () {
161
+ var _this = this;
162
+ return __generator(this, function (_a) {
163
+ return [2 /*return*/, this.storableDataService.modify('update', function () { return _this.usersService.update(userId, userDelta); }, function (modifiedUser) {
164
+ var currentUser = _this.usersService.session.user;
165
+ if (currentUser.id === modifiedUser.current.id) {
166
+ _this.usersService.session.user = (0, lodash_1.merge)(currentUser, modifiedUser.current);
167
+ _this.usersService.session.sendDataEvent(User_consts_1.UserEvents.CURRENT_USER_UPDATED, _this.usersService.session.user);
168
+ }
169
+ })];
170
+ });
171
+ });
112
172
  };
113
- UsersApi.prototype.getMany = function (ids) {
114
- return this.userStore.getMany(ids);
173
+ UsersApi.prototype.load = function (userId, options) {
174
+ if (options === void 0) { options = data_entity_1.DEFAULT_OPTIONS; }
175
+ return __awaiter(this, void 0, void 0, function () {
176
+ var _this = this;
177
+ return __generator(this, function (_a) {
178
+ return [2 /*return*/, this.storableDataService.load('load', function () { return _this.usersService.get(userId); }, userId, options)];
179
+ });
180
+ });
115
181
  };
116
182
  UsersApi.prototype.loadMany = function (ids, options) {
117
183
  if (options === void 0) { options = { useCache: true }; }
118
184
  return __awaiter(this, void 0, void 0, function () {
185
+ var chunkSize;
119
186
  var _this = this;
120
187
  return __generator(this, function (_a) {
121
- // If no IDs provided, return empty array without making API call
122
188
  if (ids.length === 0) {
123
189
  return [2 /*return*/, []];
124
190
  }
191
+ chunkSize = options.chunkSize || 500;
125
192
  return [2 /*return*/, this.storableDataService.loadMany('loadMany', function (idsToLoad) { return __awaiter(_this, void 0, void 0, function () {
193
+ var users;
194
+ return __generator(this, function (_a) {
195
+ switch (_a.label) {
196
+ case 0: return [4 /*yield*/, this.usersService.loadMany({ ids: idsToLoad, limit: chunkSize })];
197
+ case 1:
198
+ users = _a.sent();
199
+ return [2 /*return*/, users];
200
+ }
201
+ });
202
+ }); }, ids, __assign(__assign({}, options), { chunkSize: chunkSize }))];
203
+ });
204
+ });
205
+ };
206
+ UsersApi.prototype.loadAllByTeam = function (teamId, options) {
207
+ return __awaiter(this, void 0, void 0, function () {
208
+ var _this = this;
209
+ return __generator(this, function (_a) {
210
+ return [2 /*return*/, this.storableDataService.loadAll('loadDriversByTeam', function () { return __awaiter(_this, void 0, void 0, function () {
211
+ var users;
212
+ return __generator(this, function (_a) {
213
+ switch (_a.label) {
214
+ case 0: return [4 /*yield*/, this.usersService.loadAllByTeams(teamId)];
215
+ case 1:
216
+ users = _a.sent();
217
+ return [2 /*return*/, users];
218
+ }
219
+ });
220
+ }); }, __assign(__assign({}, options), { groupType: 'team', groupValue: teamId }))];
221
+ });
222
+ });
223
+ };
224
+ // Pagination methods
225
+ // TODO: convert options:DataOptions to page and limit
226
+ UsersApi.prototype.loadAll = function (options) {
227
+ return __awaiter(this, void 0, void 0, function () {
228
+ var _this = this;
229
+ return __generator(this, function (_a) {
230
+ return [2 /*return*/, this.storableDataService.loadAll('loadAll', function () { return __awaiter(_this, void 0, void 0, function () {
126
231
  var response;
127
232
  return __generator(this, function (_a) {
128
233
  switch (_a.label) {
129
- case 0: return [4 /*yield*/, this.usersService.loadAll({ ids: idsToLoad })];
234
+ case 0: return [4 /*yield*/, this.usersService.loadAll({}, { signal: options === null || options === void 0 ? void 0 : options.signal })];
130
235
  case 1:
131
236
  response = _a.sent();
132
237
  return [2 /*return*/, response.users];
133
238
  }
134
239
  });
135
- }); }, ids, __assign(__assign({}, options), { chunkSize: options.chunkSize || 500 }))];
240
+ }); }, options)];
136
241
  });
137
242
  });
138
243
  };
139
- UsersApi.prototype.onUpdate = function (callback) {
140
- return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Update, callback);
141
- };
142
- UsersApi.prototype.loadDriversByTeam = function (teamId) {
244
+ UsersApi.prototype.getAllDrivers = function (_a) {
245
+ 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;
143
246
  return __awaiter(this, void 0, void 0, function () {
144
- var users;
145
- return __generator(this, function (_a) {
146
- switch (_a.label) {
147
- case 0: return [4 /*yield*/, this.usersService.loadAllByTeams(teamId)];
247
+ var optionsWithDefaults, loadResult;
248
+ var _this = this;
249
+ return __generator(this, function (_d) {
250
+ switch (_d.label) {
251
+ case 0:
252
+ optionsWithDefaults = (0, lodash_1.defaults)(options, { onlyOnlineDriver: false, onlyCustomers: false });
253
+ return [4 /*yield*/, this.storableDataService.loadAll('getAllDrivers', function () { return __awaiter(_this, void 0, void 0, function () {
254
+ var result;
255
+ return __generator(this, function (_a) {
256
+ switch (_a.label) {
257
+ case 0: return [4 /*yield*/, this.usersService.getAllDrivers({
258
+ limit: limit,
259
+ page_action: page_action,
260
+ cursor: cursor,
261
+ options: optionsWithDefaults
262
+ })];
263
+ case 1:
264
+ result = _a.sent();
265
+ loadResult = result;
266
+ return [2 /*return*/, result.users];
267
+ }
268
+ });
269
+ }); }, {
270
+ useCache: true,
271
+ // Group drivers appropriately based on options
272
+ groupType: User_consts_1.UserGroupTypes.Main,
273
+ groupValue: optionsWithDefaults.onlyCustomers ? User_consts_1.GROUP_VALUES.Customers : User_consts_1.GROUP_VALUES.Drivers
274
+ })];
148
275
  case 1:
149
- users = _a.sent();
150
- this.storableDataService.updateManyInStores(users);
151
- return [2 /*return*/, users];
276
+ _d.sent();
277
+ return [2 /*return*/, __assign(__assign({}, loadResult), { users: loadResult.users.map(function (user) { return _this.userStore.get(user.id); }) })];
152
278
  }
153
279
  });
154
280
  });
155
281
  };
282
+ // Business logic methods
283
+ UsersApi.prototype.messageDriver = function (userId, message) {
284
+ return __awaiter(this, void 0, void 0, function () {
285
+ return __generator(this, function (_a) {
286
+ return [2 /*return*/, this.usersService.messageDriver(userId, message)];
287
+ });
288
+ });
289
+ };
290
+ UsersApi.prototype.unlock = function (userId) {
291
+ return __awaiter(this, void 0, void 0, function () {
292
+ return __generator(this, function (_a) {
293
+ return [2 /*return*/, this.usersService.unlock(userId)];
294
+ });
295
+ });
296
+ };
297
+ UsersApi.prototype.validatePhone = function (phone) {
298
+ return __awaiter(this, void 0, void 0, function () {
299
+ return __generator(this, function (_a) {
300
+ return [2 /*return*/, this.usersService.validatePhone(phone)];
301
+ });
302
+ });
303
+ };
304
+ // Store query methods - direct access to local store without API calls
305
+ UsersApi.prototype.getGroup = function (group) {
306
+ return this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, group);
307
+ };
308
+ UsersApi.prototype.getTeamGroup = function (teamId) {
309
+ return this.userStore.getGroup('team', teamId);
310
+ };
311
+ UsersApi.prototype.get = function (id) {
312
+ return this.userStore.get(id);
313
+ };
314
+ UsersApi.prototype.getMany = function (ids) {
315
+ return this.userStore.getMany(ids);
316
+ };
317
+ UsersApi.prototype.getAll = function () {
318
+ return this.userStore.getAll();
319
+ };
320
+ UsersApi.prototype.getOfflineDrivers = function () {
321
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OfflineDrivers);
322
+ return group ? Array.from(group) : [];
323
+ };
324
+ UsersApi.prototype.getOnlineDrivers = function () {
325
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OnlineDrivers);
326
+ return group ? Array.from(group) : [];
327
+ };
328
+ UsersApi.prototype.getAllLocalDrivers = function () {
329
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.Drivers);
330
+ return group ? Array.from(group) : [];
331
+ };
332
+ UsersApi.prototype.getOnShiftDrivers = function () {
333
+ var group = this.userStore.getGroup(User_consts_1.UserGroupTypes.Main, User_consts_1.GROUP_VALUES.OnShiftDrivers);
334
+ return group ? Array.from(group) : [];
335
+ };
336
+ // Additional callback methods
337
+ UsersApi.prototype.onCreate = function (callback) {
338
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Create, callback);
339
+ };
340
+ UsersApi.prototype.onUpdate = function (callback) {
341
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Update, callback);
342
+ };
343
+ UsersApi.prototype.onDelete = function (callback) {
344
+ return this.storableRealtimeSubscriptions.onEvent(User_consts_1.RealtimeEvents.Delete, callback);
345
+ };
156
346
  return UsersApi;
157
347
  }());
158
348
  exports.default = UsersApi;
@@ -1 +1 @@
1
- {"version":3,"file":"users-api.js","sourceRoot":"","sources":["../../../src/User/v2/users-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users-api.js","sourceRoot":"","sources":["../../../src/User/v2/users-api.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,35 @@
1
- import { User } from '@bringg/types';
1
+ import { Driver, User } from '@bringg/types';
2
2
  import { CommonOptions } from '../../Core/RouteGenerator';
3
3
  import Session from '../../Services/Identity/Session';
4
- import { AllUsersRepsonse } from '../User.consts';
4
+ import { KeysetPaginationRequest } from '../../utils/consts/keyset-pagination.consts';
5
+ import { AllDriversResponse, AllUsersResponse, DeleteManyResponse } from '../User.consts';
6
+ import { GetAllDriversOptions } from '../Users';
5
7
  export default class UsersService {
6
8
  private readonly service;
7
9
  constructor(session: Session);
10
+ get session(): Session;
8
11
  delete(userId: number): Promise<import("../../Core/CrudService").DELETE_RESPONSE>;
12
+ deleteMany(userIds: number[]): Promise<DeleteManyResponse>;
13
+ create(user: Partial<User>): Promise<User>;
14
+ update(userId: number, userDelta: Partial<User>): Promise<User>;
15
+ get(userId: number): Promise<User>;
9
16
  loadAll(query?: {
10
17
  ids?: number[];
11
18
  page?: number;
12
19
  limit?: number;
13
- }, commonOptions?: CommonOptions): Promise<AllUsersRepsonse>;
14
- loadAllByTeams(teamId: number, commonOptions?: CommonOptions): Promise<User[]>;
20
+ }, commonOptions?: CommonOptions): Promise<AllUsersResponse>;
21
+ loadMany(query?: {
22
+ ids?: number[];
23
+ page?: number;
24
+ limit?: number;
25
+ }, commonOptions?: CommonOptions): Promise<User[]>;
26
+ loadAllByTeams(teamId: number, commonOptions?: CommonOptions): Promise<Driver[]>;
27
+ /**
28
+ * Generic method for keyset pagination with optional scoping
29
+ */
30
+ private getAllUsersWithKeysetPagination;
31
+ getAllDrivers(request: KeysetPaginationRequest<GetAllDriversOptions>): Promise<AllDriversResponse>;
32
+ unlock(userId: number): Promise<boolean>;
33
+ validatePhone(phone: string): Promise<boolean>;
34
+ messageDriver(userId: number, message: string): Promise<number>;
15
35
  }