gemcap-be-common 1.4.2 → 1.4.3

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.
@@ -19,3 +19,10 @@ export interface IUser extends IUserBasic {
19
19
  borrowersAccess?: string[];
20
20
  lastLogin?: Date | null;
21
21
  }
22
+ export interface IRole {
23
+ id: string;
24
+ name: string;
25
+ representation: string;
26
+ createdAt?: Date;
27
+ updatedAt?: Date;
28
+ }
@@ -20,3 +20,11 @@ export interface IUser extends IUserBasic {
20
20
  borrowersAccess?: string[];
21
21
  lastLogin?: Date | null;
22
22
  }
23
+
24
+ export interface IRole {
25
+ id: string;
26
+ name: string;
27
+ representation: string;
28
+ createdAt?: Date;
29
+ updatedAt?: Date;
30
+ }
@@ -184,49 +184,49 @@ export declare const AvailabilitySchema: mongoose.Schema<any, mongoose.Model<any
184
184
  createdAt: NativeDate;
185
185
  updatedAt: NativeDate;
186
186
  } & {
187
- bbcDateId: mongoose.Types.ObjectId;
188
187
  borrowerId: mongoose.Types.ObjectId;
188
+ bbcDateId: mongoose.Types.ObjectId;
189
189
  useManualInputs: boolean;
190
190
  __v?: number;
191
191
  summary?: {
192
192
  invoiceAmount: number;
193
- creditNotes: number;
194
- excludedCustomerDeduction: number;
195
193
  grossAR: number;
194
+ balanceAfterCrossAge: number;
196
195
  permittedOver: number;
197
- preliminaryEligibleBalance: number;
198
- creditNotesNegative: number;
196
+ creditNotes: number;
197
+ excludedCustomerDeduction: number;
199
198
  deduction: number;
200
199
  partiallyPaidDeduction: number;
201
200
  contraDeduction: number;
202
201
  crossAgeDeduction: number;
203
202
  waivedDeduction: number;
204
- balanceAfterCrossAge: number;
205
203
  finalResult: number;
206
204
  insuredComponent: number;
205
+ preliminaryEligibleBalance: number;
207
206
  uninsuredComponent: number;
208
207
  insuredAvailability: number;
209
208
  uninsuredAvailability: number;
209
+ creditNotesNegative: number;
210
210
  ARReserves: number;
211
211
  ARAvailability: number;
212
212
  };
213
- actual?: boolean;
214
213
  userCalculatedId?: mongoose.Types.ObjectId;
215
214
  calculatedAt?: Date;
215
+ actual?: boolean;
216
216
  settings?: {
217
217
  excludedCustomers: mongoose.Types.DocumentArray<{
218
218
  limit?: number;
219
219
  customer?: string;
220
220
  }>;
221
- insuredCustomers: mongoose.Types.DocumentArray<{
221
+ permittedConcentration: mongoose.Types.DocumentArray<{
222
222
  limit?: number;
223
223
  customer?: string;
224
224
  }>;
225
- permittedConcentration: mongoose.Types.DocumentArray<{
225
+ permittedExtendedARDays: mongoose.Types.DocumentArray<{
226
226
  limit?: number;
227
227
  customer?: string;
228
228
  }>;
229
- permittedExtendedARDays: mongoose.Types.DocumentArray<{
229
+ insuredCustomers: mongoose.Types.DocumentArray<{
230
230
  limit?: number;
231
231
  customer?: string;
232
232
  }>;
@@ -244,49 +244,49 @@ export declare const AvailabilitySchema: mongoose.Schema<any, mongoose.Model<any
244
244
  createdAt: NativeDate;
245
245
  updatedAt: NativeDate;
246
246
  } & {
247
- bbcDateId: mongoose.Types.ObjectId;
248
247
  borrowerId: mongoose.Types.ObjectId;
248
+ bbcDateId: mongoose.Types.ObjectId;
249
249
  useManualInputs: boolean;
250
250
  __v?: number;
251
251
  summary?: {
252
252
  invoiceAmount: number;
253
- creditNotes: number;
254
- excludedCustomerDeduction: number;
255
253
  grossAR: number;
254
+ balanceAfterCrossAge: number;
256
255
  permittedOver: number;
257
- preliminaryEligibleBalance: number;
258
- creditNotesNegative: number;
256
+ creditNotes: number;
257
+ excludedCustomerDeduction: number;
259
258
  deduction: number;
260
259
  partiallyPaidDeduction: number;
261
260
  contraDeduction: number;
262
261
  crossAgeDeduction: number;
263
262
  waivedDeduction: number;
264
- balanceAfterCrossAge: number;
265
263
  finalResult: number;
266
264
  insuredComponent: number;
265
+ preliminaryEligibleBalance: number;
267
266
  uninsuredComponent: number;
268
267
  insuredAvailability: number;
269
268
  uninsuredAvailability: number;
269
+ creditNotesNegative: number;
270
270
  ARReserves: number;
271
271
  ARAvailability: number;
272
272
  };
273
- actual?: boolean;
274
273
  userCalculatedId?: mongoose.Types.ObjectId;
275
274
  calculatedAt?: Date;
275
+ actual?: boolean;
276
276
  settings?: {
277
277
  excludedCustomers: mongoose.Types.DocumentArray<{
278
278
  limit?: number;
279
279
  customer?: string;
280
280
  }>;
281
- insuredCustomers: mongoose.Types.DocumentArray<{
281
+ permittedConcentration: mongoose.Types.DocumentArray<{
282
282
  limit?: number;
283
283
  customer?: string;
284
284
  }>;
285
- permittedConcentration: mongoose.Types.DocumentArray<{
285
+ permittedExtendedARDays: mongoose.Types.DocumentArray<{
286
286
  limit?: number;
287
287
  customer?: string;
288
288
  }>;
289
- permittedExtendedARDays: mongoose.Types.DocumentArray<{
289
+ insuredCustomers: mongoose.Types.DocumentArray<{
290
290
  limit?: number;
291
291
  customer?: string;
292
292
  }>;
@@ -304,49 +304,49 @@ export declare const AvailabilitySchema: mongoose.Schema<any, mongoose.Model<any
304
304
  createdAt: NativeDate;
305
305
  updatedAt: NativeDate;
306
306
  } & {
307
- bbcDateId: mongoose.Types.ObjectId;
308
307
  borrowerId: mongoose.Types.ObjectId;
308
+ bbcDateId: mongoose.Types.ObjectId;
309
309
  useManualInputs: boolean;
310
310
  __v?: number;
311
311
  summary?: {
312
312
  invoiceAmount: number;
313
- creditNotes: number;
314
- excludedCustomerDeduction: number;
315
313
  grossAR: number;
314
+ balanceAfterCrossAge: number;
316
315
  permittedOver: number;
317
- preliminaryEligibleBalance: number;
318
- creditNotesNegative: number;
316
+ creditNotes: number;
317
+ excludedCustomerDeduction: number;
319
318
  deduction: number;
320
319
  partiallyPaidDeduction: number;
321
320
  contraDeduction: number;
322
321
  crossAgeDeduction: number;
323
322
  waivedDeduction: number;
324
- balanceAfterCrossAge: number;
325
323
  finalResult: number;
326
324
  insuredComponent: number;
325
+ preliminaryEligibleBalance: number;
327
326
  uninsuredComponent: number;
328
327
  insuredAvailability: number;
329
328
  uninsuredAvailability: number;
329
+ creditNotesNegative: number;
330
330
  ARReserves: number;
331
331
  ARAvailability: number;
332
332
  };
333
- actual?: boolean;
334
333
  userCalculatedId?: mongoose.Types.ObjectId;
335
334
  calculatedAt?: Date;
335
+ actual?: boolean;
336
336
  settings?: {
337
337
  excludedCustomers: mongoose.Types.DocumentArray<{
338
338
  limit?: number;
339
339
  customer?: string;
340
340
  }>;
341
- insuredCustomers: mongoose.Types.DocumentArray<{
341
+ permittedConcentration: mongoose.Types.DocumentArray<{
342
342
  limit?: number;
343
343
  customer?: string;
344
344
  }>;
345
- permittedConcentration: mongoose.Types.DocumentArray<{
345
+ permittedExtendedARDays: mongoose.Types.DocumentArray<{
346
346
  limit?: number;
347
347
  customer?: string;
348
348
  }>;
349
- permittedExtendedARDays: mongoose.Types.DocumentArray<{
349
+ insuredCustomers: mongoose.Types.DocumentArray<{
350
350
  limit?: number;
351
351
  customer?: string;
352
352
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemcap-be-common",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -45,7 +45,7 @@ export declare class ComplianceBorrowersService {
45
45
  };
46
46
  };
47
47
  getFullComplianceBorrowerById(complianceBorrowerId: any): Promise<any>;
48
- getAllBorrowersShortened(userAccess: any): Promise<(Pick<IComplianceBorrowerDocument, "borrower" | "fundingStatus" | "items"> | {
48
+ getAllBorrowersShortened(userAccess: any): Promise<(Pick<IComplianceBorrowerDocument, "items" | "borrower" | "fundingStatus"> | {
49
49
  items: {
50
50
  instances: any[];
51
51
  item: import("../models/ComplianceItem.model").IComplianceItemDocument;
@@ -24,7 +24,7 @@
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
25
  import express from 'express';
26
26
  import mongoose from 'mongoose';
27
- import { IUser } from '../interfaces/auth-user.interface';
27
+ import { IRole, IUser } from '../interfaces/auth-user.interface';
28
28
  interface IKeycloakConfig {
29
29
  keycloakHost: string;
30
30
  realm: string;
@@ -41,7 +41,8 @@ export declare class UsersService {
41
41
  getUserByToken(req: express.Request): Promise<IUser | null>;
42
42
  getUserIdByToken(req: express.Request): Promise<string | null>;
43
43
  getUserList(): Promise<IUser[]>;
44
- getUserRoles(userId: string): Promise<Record<string, string[]>>;
44
+ getAllRoles(): Promise<IRole[]>;
45
+ getUserRoles(userId: string): Promise<string[]>;
45
46
  updateMobileUser(userId: string, keyValue: {
46
47
  [key: string]: string | number | boolean;
47
48
  }): Promise<void>;
@@ -54,9 +54,17 @@ class UsersService {
54
54
  const { data } = await axios_1.default.get(`${this.config.baseUrl}/users/users`);
55
55
  return data ?? null;
56
56
  }
57
+ async getAllRoles() {
58
+ const { data } = await axios_1.default.get(`${this.config.baseUrl}/users/roles`);
59
+ return data ?? null;
60
+ }
57
61
  async getUserRoles(userId) {
58
62
  const user = await this.getUserById(userId);
59
- return user.roles;
63
+ const roles = await this.getAllRoles();
64
+ const userRoleIds = Object.values(user.roles).reduce((acc, roleIds) => [...acc, ...roleIds], []);
65
+ return roles
66
+ .filter((role) => userRoleIds.includes(role.id))
67
+ .map((role) => role.name);
60
68
  }
61
69
  async updateMobileUser(userId, keyValue) {
62
70
  await UserMobileAccess_model_1.UserMobileAccess.findOneAndUpdate({ keycloakUserId: userId }, keyValue, { upsert: true });
@@ -6,7 +6,7 @@ import mongoose from 'mongoose';
6
6
  import { BorrowerCompliance } from '../models/BorrowerCompliance.model';
7
7
  import { UserMobileAccess } from '../models/UserMobileAccess.model';
8
8
  import { UserLog } from '../models/UserLog.model';
9
- import { IUser } from '../interfaces/auth-user.interface';
9
+ import { IRole, IUser } from '../interfaces/auth-user.interface';
10
10
 
11
11
  interface IKeycloakConfig {
12
12
  keycloakHost: string;
@@ -63,14 +63,23 @@ export class UsersService {
63
63
  return null;
64
64
  }
65
65
 
66
- async getUserList(): Promise<IUser[]> {
67
- const { data } = await axios.get(`${this.config.baseUrl}/users/users`);
66
+ async getUserList() {
67
+ const { data } = await axios.get<IUser[]>(`${this.config.baseUrl}/users/users`);
68
68
  return data ?? null;
69
69
  }
70
70
 
71
- async getUserRoles(userId: string) { // TODO add full description
71
+ async getAllRoles() {
72
+ const { data } = await axios.get<IRole[]>(`${this.config.baseUrl}/users/roles`);
73
+ return data ?? null;
74
+ }
75
+
76
+ async getUserRoles(userId: string) {
72
77
  const user = await this.getUserById(userId);
73
- return user.roles;
78
+ const roles = await this.getAllRoles();
79
+ const userRoleIds = Object.values(user.roles).reduce((acc, roleIds) => [...acc, ...roleIds], []);
80
+ return roles
81
+ .filter((role) => userRoleIds.includes(role.id))
82
+ .map((role) => role.name);
74
83
  }
75
84
 
76
85
  async updateMobileUser(userId: string, keyValue: { [key: string]: string | number | boolean }) {