gemcap-be-common 1.4.237 → 1.4.240
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.
- package/models/BorrowerCompliance.model.d.ts +55 -48
- package/models/BorrowerCompliance.model.ts +11 -3
- package/package.json +1 -1
- package/services/compliance-borrowers.service.d.ts +16 -16
- package/services/compliance-borrowers.service.js +9 -6
- package/services/compliance-borrowers.service.ts +15 -12
- package/services/loan-transactions.service.d.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
/// <reference types="mongoose/types/inferschematype" />
|
|
25
25
|
import mongoose, { Model } from 'mongoose';
|
|
26
26
|
import { IBorrowerItemDocument, IEmailRecipient } from './ComplianceItem.model';
|
|
27
|
+
import { IBorrowerDoc } from './Borrower.model';
|
|
27
28
|
export interface IComplianceNote {
|
|
28
29
|
note: string;
|
|
29
30
|
date: Date;
|
|
@@ -31,7 +32,7 @@ export interface IComplianceNote {
|
|
|
31
32
|
}
|
|
32
33
|
export interface IComplianceBorrower {
|
|
33
34
|
isVisible: boolean;
|
|
34
|
-
borrower:
|
|
35
|
+
borrower: mongoose.Types.ObjectId;
|
|
35
36
|
complianceNotes?: IComplianceNote[];
|
|
36
37
|
borrowerNotes?: IComplianceNote[];
|
|
37
38
|
email?: string;
|
|
@@ -54,13 +55,19 @@ export interface IComplianceBorrowerLean extends IComplianceBorrower {
|
|
|
54
55
|
createdAt: Date;
|
|
55
56
|
updatedAt: Date;
|
|
56
57
|
}
|
|
57
|
-
export interface IComplianceBorrowerPlain extends IComplianceBorrower {
|
|
58
|
+
export interface IComplianceBorrowerPlain extends Omit<IComplianceBorrower, 'borrower'> {
|
|
58
59
|
_id: string;
|
|
60
|
+
borrower: string;
|
|
61
|
+
createdAt: Date;
|
|
62
|
+
updatedAt: Date;
|
|
63
|
+
}
|
|
64
|
+
export interface IComplianceBorrowerWithBorrower extends Omit<IComplianceBorrowerLean, 'borrower'> {
|
|
65
|
+
borrower: IBorrowerDoc;
|
|
59
66
|
createdAt: Date;
|
|
60
67
|
updatedAt: Date;
|
|
61
68
|
}
|
|
62
69
|
export type ComplianceBorrowerModel = Model<IComplianceBorrowerDoc>;
|
|
63
|
-
export interface IComplianceBorrowerDocumentFull extends Omit<
|
|
70
|
+
export interface IComplianceBorrowerDocumentFull extends Omit<IComplianceBorrowerWithBorrower, 'items'> {
|
|
64
71
|
items: IBorrowerItemDocument[];
|
|
65
72
|
}
|
|
66
73
|
export declare const BorrowerComplianceSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
|
|
@@ -69,6 +76,27 @@ export declare const BorrowerComplianceSchema: mongoose.Schema<any, mongoose.Mod
|
|
|
69
76
|
createdAt: NativeDate;
|
|
70
77
|
updatedAt: NativeDate;
|
|
71
78
|
} & {
|
|
79
|
+
borrower: mongoose.Types.ObjectId;
|
|
80
|
+
complianceNotes: mongoose.Types.DocumentArray<{
|
|
81
|
+
date: Date;
|
|
82
|
+
note: string;
|
|
83
|
+
user?: string;
|
|
84
|
+
}>;
|
|
85
|
+
borrowerNotes: mongoose.Types.DocumentArray<{
|
|
86
|
+
date: Date;
|
|
87
|
+
note: string;
|
|
88
|
+
user?: string;
|
|
89
|
+
}>;
|
|
90
|
+
mainEmails: mongoose.Types.DocumentArray<{
|
|
91
|
+
email?: string;
|
|
92
|
+
title?: string;
|
|
93
|
+
isActive?: boolean;
|
|
94
|
+
}>;
|
|
95
|
+
financialEmails: mongoose.Types.DocumentArray<{
|
|
96
|
+
email?: string;
|
|
97
|
+
title?: string;
|
|
98
|
+
isActive?: boolean;
|
|
99
|
+
}>;
|
|
72
100
|
items: mongoose.Types.DocumentArray<{
|
|
73
101
|
createdAt: NativeDate;
|
|
74
102
|
updatedAt: NativeDate;
|
|
@@ -97,6 +125,18 @@ export declare const BorrowerComplianceSchema: mongoose.Schema<any, mongoose.Mod
|
|
|
97
125
|
startDate?: Date;
|
|
98
126
|
frequency?: string;
|
|
99
127
|
}>;
|
|
128
|
+
isVisible?: boolean;
|
|
129
|
+
email?: string;
|
|
130
|
+
isEmailingActive?: boolean;
|
|
131
|
+
isDailyTransactionsEmailingActive?: boolean;
|
|
132
|
+
plaidAccessToken?: string;
|
|
133
|
+
fundingStatus?: string;
|
|
134
|
+
lastEmailSentAt?: Date;
|
|
135
|
+
__v?: number;
|
|
136
|
+
}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
|
|
137
|
+
createdAt: NativeDate;
|
|
138
|
+
updatedAt: NativeDate;
|
|
139
|
+
} & {
|
|
100
140
|
borrower: mongoose.Types.ObjectId;
|
|
101
141
|
complianceNotes: mongoose.Types.DocumentArray<{
|
|
102
142
|
date: Date;
|
|
@@ -118,18 +158,6 @@ export declare const BorrowerComplianceSchema: mongoose.Schema<any, mongoose.Mod
|
|
|
118
158
|
title?: string;
|
|
119
159
|
isActive?: boolean;
|
|
120
160
|
}>;
|
|
121
|
-
isVisible?: boolean;
|
|
122
|
-
email?: string;
|
|
123
|
-
isEmailingActive?: boolean;
|
|
124
|
-
isDailyTransactionsEmailingActive?: boolean;
|
|
125
|
-
plaidAccessToken?: string;
|
|
126
|
-
fundingStatus?: string;
|
|
127
|
-
lastEmailSentAt?: Date;
|
|
128
|
-
__v?: number;
|
|
129
|
-
}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
|
|
130
|
-
createdAt: NativeDate;
|
|
131
|
-
updatedAt: NativeDate;
|
|
132
|
-
} & {
|
|
133
161
|
items: mongoose.Types.DocumentArray<{
|
|
134
162
|
createdAt: NativeDate;
|
|
135
163
|
updatedAt: NativeDate;
|
|
@@ -158,6 +186,18 @@ export declare const BorrowerComplianceSchema: mongoose.Schema<any, mongoose.Mod
|
|
|
158
186
|
startDate?: Date;
|
|
159
187
|
frequency?: string;
|
|
160
188
|
}>;
|
|
189
|
+
isVisible?: boolean;
|
|
190
|
+
email?: string;
|
|
191
|
+
isEmailingActive?: boolean;
|
|
192
|
+
isDailyTransactionsEmailingActive?: boolean;
|
|
193
|
+
plaidAccessToken?: string;
|
|
194
|
+
fundingStatus?: string;
|
|
195
|
+
lastEmailSentAt?: Date;
|
|
196
|
+
__v?: number;
|
|
197
|
+
}>> & mongoose.FlatRecord<{
|
|
198
|
+
createdAt: NativeDate;
|
|
199
|
+
updatedAt: NativeDate;
|
|
200
|
+
} & {
|
|
161
201
|
borrower: mongoose.Types.ObjectId;
|
|
162
202
|
complianceNotes: mongoose.Types.DocumentArray<{
|
|
163
203
|
date: Date;
|
|
@@ -179,18 +219,6 @@ export declare const BorrowerComplianceSchema: mongoose.Schema<any, mongoose.Mod
|
|
|
179
219
|
title?: string;
|
|
180
220
|
isActive?: boolean;
|
|
181
221
|
}>;
|
|
182
|
-
isVisible?: boolean;
|
|
183
|
-
email?: string;
|
|
184
|
-
isEmailingActive?: boolean;
|
|
185
|
-
isDailyTransactionsEmailingActive?: boolean;
|
|
186
|
-
plaidAccessToken?: string;
|
|
187
|
-
fundingStatus?: string;
|
|
188
|
-
lastEmailSentAt?: Date;
|
|
189
|
-
__v?: number;
|
|
190
|
-
}>> & mongoose.FlatRecord<{
|
|
191
|
-
createdAt: NativeDate;
|
|
192
|
-
updatedAt: NativeDate;
|
|
193
|
-
} & {
|
|
194
222
|
items: mongoose.Types.DocumentArray<{
|
|
195
223
|
createdAt: NativeDate;
|
|
196
224
|
updatedAt: NativeDate;
|
|
@@ -219,27 +247,6 @@ export declare const BorrowerComplianceSchema: mongoose.Schema<any, mongoose.Mod
|
|
|
219
247
|
startDate?: Date;
|
|
220
248
|
frequency?: string;
|
|
221
249
|
}>;
|
|
222
|
-
borrower: mongoose.Types.ObjectId;
|
|
223
|
-
complianceNotes: mongoose.Types.DocumentArray<{
|
|
224
|
-
date: Date;
|
|
225
|
-
note: string;
|
|
226
|
-
user?: string;
|
|
227
|
-
}>;
|
|
228
|
-
borrowerNotes: mongoose.Types.DocumentArray<{
|
|
229
|
-
date: Date;
|
|
230
|
-
note: string;
|
|
231
|
-
user?: string;
|
|
232
|
-
}>;
|
|
233
|
-
mainEmails: mongoose.Types.DocumentArray<{
|
|
234
|
-
email?: string;
|
|
235
|
-
title?: string;
|
|
236
|
-
isActive?: boolean;
|
|
237
|
-
}>;
|
|
238
|
-
financialEmails: mongoose.Types.DocumentArray<{
|
|
239
|
-
email?: string;
|
|
240
|
-
title?: string;
|
|
241
|
-
isActive?: boolean;
|
|
242
|
-
}>;
|
|
243
250
|
isVisible?: boolean;
|
|
244
251
|
email?: string;
|
|
245
252
|
isEmailingActive?: boolean;
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
IBorrowerItemDocument,
|
|
6
6
|
IEmailRecipient,
|
|
7
7
|
} from './ComplianceItem.model';
|
|
8
|
+
import { IBorrowerDoc } from './Borrower.model';
|
|
8
9
|
|
|
9
10
|
export interface IComplianceNote {
|
|
10
11
|
note: string;
|
|
@@ -14,7 +15,7 @@ export interface IComplianceNote {
|
|
|
14
15
|
|
|
15
16
|
export interface IComplianceBorrower {
|
|
16
17
|
isVisible: boolean;
|
|
17
|
-
borrower:
|
|
18
|
+
borrower: mongoose.Types.ObjectId;
|
|
18
19
|
complianceNotes?: IComplianceNote[];
|
|
19
20
|
borrowerNotes?: IComplianceNote[];
|
|
20
21
|
email?: string;
|
|
@@ -40,15 +41,22 @@ export interface IComplianceBorrowerLean extends IComplianceBorrower {
|
|
|
40
41
|
updatedAt: Date;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
export interface IComplianceBorrowerPlain extends IComplianceBorrower {
|
|
44
|
+
export interface IComplianceBorrowerPlain extends Omit<IComplianceBorrower, 'borrower'> {
|
|
44
45
|
_id: string;
|
|
46
|
+
borrower: string;
|
|
47
|
+
createdAt: Date;
|
|
48
|
+
updatedAt: Date;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface IComplianceBorrowerWithBorrower extends Omit<IComplianceBorrowerLean, 'borrower'> {
|
|
52
|
+
borrower: IBorrowerDoc;
|
|
45
53
|
createdAt: Date;
|
|
46
54
|
updatedAt: Date;
|
|
47
55
|
}
|
|
48
56
|
|
|
49
57
|
export type ComplianceBorrowerModel = Model<IComplianceBorrowerDoc>;
|
|
50
58
|
|
|
51
|
-
export interface IComplianceBorrowerDocumentFull extends Omit<
|
|
59
|
+
export interface IComplianceBorrowerDocumentFull extends Omit<IComplianceBorrowerWithBorrower, 'items'> {
|
|
52
60
|
items: IBorrowerItemDocument[];
|
|
53
61
|
}
|
|
54
62
|
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
import mongoose from 'mongoose';
|
|
26
26
|
import { IEmailRecipient } from '../models/ComplianceItem.model';
|
|
27
27
|
import { IGroupedEmailsUpdate } from '../interfaces/email-addresses.interface';
|
|
28
|
-
import {
|
|
28
|
+
import { IComplianceBorrowerWithBorrower, IComplianceBorrowerDocumentFull } from '../models/BorrowerCompliance.model';
|
|
29
29
|
import { IUserAccess } from '../interfaces/auth-user.interface';
|
|
30
30
|
import { FileManagerService } from './file-manager.service';
|
|
31
31
|
import { UploadsService } from './uploads.service';
|
|
@@ -45,7 +45,7 @@ export declare class ComplianceBorrowersService {
|
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
getFullComplianceBorrowerById(complianceBorrowerId: string): Promise<any>;
|
|
48
|
-
getAllBorrowersShortened(userAccess: IUserAccess): Promise<(Pick<
|
|
48
|
+
getAllBorrowersShortened(userAccess: IUserAccess): Promise<(Pick<IComplianceBorrowerWithBorrower, "borrower" | "fundingStatus" | "items"> | {
|
|
49
49
|
items: {
|
|
50
50
|
instances: any[];
|
|
51
51
|
item: import("../models/ComplianceItem.model").IComplianceItemDocument;
|
|
@@ -73,39 +73,39 @@ export declare class ComplianceBorrowersService {
|
|
|
73
73
|
_id: unknown;
|
|
74
74
|
}>>;
|
|
75
75
|
}[];
|
|
76
|
-
borrower:
|
|
76
|
+
borrower: import("../models/Borrower.model").IBorrowerDoc;
|
|
77
77
|
fundingStatus?: string;
|
|
78
78
|
})[]>;
|
|
79
79
|
generateInstances(complianceBorrowerId: any): Promise<any>;
|
|
80
80
|
calculateAndUpdateFundingStatus(complianceBorrowerId: string): Promise<void>;
|
|
81
81
|
calculateFundingStatus(complianceBorrower: IComplianceBorrowerDocumentFull): string;
|
|
82
|
-
updateComplianceBorrower(complianceBorrower: IComplianceBorrowerDocumentFull): Promise<mongoose.Document<unknown, {}, IComplianceBorrowerDoc> & IComplianceBorrowerDoc & Required<{
|
|
82
|
+
updateComplianceBorrower(complianceBorrower: IComplianceBorrowerDocumentFull): Promise<mongoose.Document<unknown, {}, import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc> & import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc & Required<{
|
|
83
83
|
_id: mongoose.Types.ObjectId;
|
|
84
84
|
}>>;
|
|
85
|
-
updateFundingStatus(complianceBorrowerId: string, fundingStatus: string): Promise<mongoose.Document<unknown, {}, IComplianceBorrowerDoc> & IComplianceBorrowerDoc & Required<{
|
|
85
|
+
updateFundingStatus(complianceBorrowerId: string, fundingStatus: string): Promise<mongoose.Document<unknown, {}, import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc> & import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc & Required<{
|
|
86
86
|
_id: mongoose.Types.ObjectId;
|
|
87
87
|
}>>;
|
|
88
|
-
updateLastEmailSent(complianceBorrowerId: string, lastEmailSentAt: Date): Promise<mongoose.Document<unknown, {}, IComplianceBorrowerDoc> & IComplianceBorrowerDoc & Required<{
|
|
88
|
+
updateLastEmailSent(complianceBorrowerId: string, lastEmailSentAt: Date): Promise<mongoose.Document<unknown, {}, import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc> & import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc & Required<{
|
|
89
89
|
_id: mongoose.Types.ObjectId;
|
|
90
90
|
}>>;
|
|
91
91
|
getAllBorrowersIds(onlyActive?: boolean): Promise<any[]>;
|
|
92
|
-
getBorrowerListByItemId(complianceItemId: string): Promise<Omit<mongoose.Document<unknown, {}, IComplianceBorrowerDoc> & IComplianceBorrowerDoc & Required<{
|
|
92
|
+
getBorrowerListByItemId(complianceItemId: string): Promise<Omit<mongoose.Document<unknown, {}, import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc> & import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc & Required<{
|
|
93
93
|
_id: mongoose.Types.ObjectId;
|
|
94
94
|
}>, never>[]>;
|
|
95
95
|
deleteInstanceById(complianceBorrowerId: string, complianceInstanceId: string): Promise<void>;
|
|
96
|
-
getBorrowerByInstanceId(complianceInstanceId: string): Promise<mongoose.Document<unknown, {}, IComplianceBorrowerDoc> & IComplianceBorrowerDoc & Required<{
|
|
96
|
+
getBorrowerByInstanceId(complianceInstanceId: string): Promise<mongoose.Document<unknown, {}, import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc> & import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc & Required<{
|
|
97
97
|
_id: mongoose.Types.ObjectId;
|
|
98
98
|
}>>;
|
|
99
|
-
markInstanceFilesAsOld(complianceInstanceId: string): Promise<mongoose.Document<unknown, {}, IComplianceBorrowerDoc> & IComplianceBorrowerDoc & Required<{
|
|
99
|
+
markInstanceFilesAsOld(complianceInstanceId: string): Promise<mongoose.Document<unknown, {}, import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc> & import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc & Required<{
|
|
100
100
|
_id: mongoose.Types.ObjectId;
|
|
101
101
|
}>>;
|
|
102
|
-
getBorrowerWithPlaidToken(): Promise<(mongoose.Document<unknown, {}, IComplianceBorrowerDoc> & IComplianceBorrowerDoc & Required<{
|
|
102
|
+
getBorrowerWithPlaidToken(): Promise<(mongoose.Document<unknown, {}, import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc> & import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc & Required<{
|
|
103
103
|
_id: mongoose.Types.ObjectId;
|
|
104
104
|
}>)[]>;
|
|
105
105
|
getBorrowerEmails(userAccess: IUserAccess): Promise<{
|
|
106
106
|
borrower: {
|
|
107
|
-
_id:
|
|
108
|
-
name:
|
|
107
|
+
_id: string;
|
|
108
|
+
name: string;
|
|
109
109
|
borrowerId: any;
|
|
110
110
|
};
|
|
111
111
|
email: string;
|
|
@@ -122,9 +122,9 @@ export declare class ComplianceBorrowersService {
|
|
|
122
122
|
}[]>;
|
|
123
123
|
getOneBorrowerEmails(userAccess: any, borrowerId: any): Promise<{
|
|
124
124
|
borrower: {
|
|
125
|
-
_id:
|
|
126
|
-
name:
|
|
127
|
-
borrowerId:
|
|
125
|
+
_id: string;
|
|
126
|
+
name: string;
|
|
127
|
+
borrowerId: string;
|
|
128
128
|
};
|
|
129
129
|
email: string;
|
|
130
130
|
mainEmails: IEmailRecipient[];
|
|
@@ -142,7 +142,7 @@ export declare class ComplianceBorrowersService {
|
|
|
142
142
|
mainEmails: IEmailRecipient[];
|
|
143
143
|
financialEmails: IEmailRecipient[];
|
|
144
144
|
}>;
|
|
145
|
-
updateBorrowerEmailAddresses(emailUpdate: IGroupedEmailsUpdate): Promise<mongoose.Document<unknown, {}, IComplianceBorrowerDoc> & IComplianceBorrowerDoc & Required<{
|
|
145
|
+
updateBorrowerEmailAddresses(emailUpdate: IGroupedEmailsUpdate): Promise<mongoose.Document<unknown, {}, import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc> & import("../models/BorrowerCompliance.model").IComplianceBorrowerDoc & Required<{
|
|
146
146
|
_id: mongoose.Types.ObjectId;
|
|
147
147
|
}>>;
|
|
148
148
|
toggleComplianceBorrowerVisibility(borrowerId: string, isVisible: boolean): Promise<void>;
|
|
@@ -393,7 +393,8 @@ class ComplianceBorrowersService {
|
|
|
393
393
|
.find(userAccess.allBorrowers ? {} : { 'borrower': { $in: userAccess.borrowersAccess } })
|
|
394
394
|
.populate('borrower items.item')
|
|
395
395
|
.collation({ locale: 'en' })
|
|
396
|
-
.sort({ 'borrower.name': 1 })
|
|
396
|
+
.sort({ 'borrower.name': 1 })
|
|
397
|
+
.lean();
|
|
397
398
|
return allComplianceBorrower.map((b) => {
|
|
398
399
|
const items = b.items.map((item) => {
|
|
399
400
|
return {
|
|
@@ -412,7 +413,7 @@ class ComplianceBorrowersService {
|
|
|
412
413
|
return;
|
|
413
414
|
}
|
|
414
415
|
return {
|
|
415
|
-
borrower: { _id: b.
|
|
416
|
+
borrower: { _id: b._id.toString(), name: b.borrower?.name ?? '', borrowerId: b.borrower?.id ?? '' },
|
|
416
417
|
email: b.email,
|
|
417
418
|
mainEmails: b.mainEmails ?? [],
|
|
418
419
|
financialEmails: b.financialEmails ?? [],
|
|
@@ -429,7 +430,8 @@ class ComplianceBorrowersService {
|
|
|
429
430
|
.findOne({ _id: borrowerId })
|
|
430
431
|
.populate('borrower items.item')
|
|
431
432
|
.collation({ locale: 'en' })
|
|
432
|
-
.sort({ 'borrower.name': 1 })
|
|
433
|
+
.sort({ 'borrower.name': 1 })
|
|
434
|
+
.lean();
|
|
433
435
|
const items = borrower.items.map((item) => {
|
|
434
436
|
return {
|
|
435
437
|
value: item.item?.id ?? null,
|
|
@@ -447,7 +449,7 @@ class ComplianceBorrowersService {
|
|
|
447
449
|
return;
|
|
448
450
|
}
|
|
449
451
|
return {
|
|
450
|
-
borrower: { _id: borrower.
|
|
452
|
+
borrower: { _id: borrower._id.toString(), name: borrower.borrower?.name ?? '', borrowerId: borrower.borrower?._id.toString() ?? '' },
|
|
451
453
|
email: borrower.email,
|
|
452
454
|
mainEmails: borrower.mainEmails ?? [],
|
|
453
455
|
financialEmails: borrower.financialEmails ?? [],
|
|
@@ -540,7 +542,8 @@ class ComplianceBorrowersService {
|
|
|
540
542
|
const borrowers = await BorrowerCompliance_model_1.BorrowerCompliance
|
|
541
543
|
.find(userFilter)
|
|
542
544
|
.populate('borrower')
|
|
543
|
-
.populate('items.item')
|
|
545
|
+
.populate('items.item')
|
|
546
|
+
.lean();
|
|
544
547
|
const finalList = [
|
|
545
548
|
['borrower', 'due date', 'item', 'status'],
|
|
546
549
|
];
|
|
@@ -555,7 +558,7 @@ class ComplianceBorrowersService {
|
|
|
555
558
|
if (instance.status !== 'ACCEPTED') {
|
|
556
559
|
finalList.push([
|
|
557
560
|
borrower.borrower.name.trim(),
|
|
558
|
-
instance.nextDate,
|
|
561
|
+
instance.nextDate.toString(),
|
|
559
562
|
item.item.name.trim(),
|
|
560
563
|
instance.status,
|
|
561
564
|
]);
|
|
@@ -7,7 +7,7 @@ import { IGroupedEmailsUpdate } from '../interfaces/email-addresses.interface';
|
|
|
7
7
|
import { EItemProgressStatus } from '../enums/item-progress-status.enum';
|
|
8
8
|
import {
|
|
9
9
|
BorrowerCompliance,
|
|
10
|
-
|
|
10
|
+
IComplianceBorrowerWithBorrower,
|
|
11
11
|
IComplianceBorrowerDocumentFull,
|
|
12
12
|
} from '../models/BorrowerCompliance.model';
|
|
13
13
|
import { BorrowerModel } from '../models/Borrower.model';
|
|
@@ -92,7 +92,7 @@ export class ComplianceBorrowersService {
|
|
|
92
92
|
// populate: { path: 'instances.files.uploadedBy', model: MODEL_NAMES.users },
|
|
93
93
|
// }) // TODO remove this when we have a better way to handle users
|
|
94
94
|
.transform((borrower) => ({ ...borrower, plaidAccessToken: borrower?.plaidAccessToken ?? false }))
|
|
95
|
-
.lean()
|
|
95
|
+
.lean<IComplianceBorrowerDocumentFull>();
|
|
96
96
|
if (!ourBorrower.borrower) {
|
|
97
97
|
return Promise.resolve({ ...ourBorrower });
|
|
98
98
|
}
|
|
@@ -130,9 +130,9 @@ export class ComplianceBorrowersService {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
async getAllBorrowersShortened(userAccess: IUserAccess) {
|
|
133
|
-
type BorrowerComplianceShort = Pick<
|
|
133
|
+
type BorrowerComplianceShort = Pick<IComplianceBorrowerWithBorrower, 'borrower' | 'fundingStatus' | 'items'>;
|
|
134
134
|
|
|
135
|
-
const allComplianceBorrower
|
|
135
|
+
const allComplianceBorrower = await BorrowerCompliance
|
|
136
136
|
.find(userAccess.allBorrowers ? { isVisible: true } : {
|
|
137
137
|
'borrower': { $in: userAccess.borrowersAccess },
|
|
138
138
|
isVisible: true,
|
|
@@ -143,7 +143,7 @@ export class ComplianceBorrowersService {
|
|
|
143
143
|
populate: { path: 'item', model: 'complianceItems' },
|
|
144
144
|
})
|
|
145
145
|
.collation({ locale: 'en' })
|
|
146
|
-
.lean();
|
|
146
|
+
.lean<BorrowerComplianceShort[]>();
|
|
147
147
|
const borrowers = await Promise.all(allComplianceBorrower.map(async (borrower) => {
|
|
148
148
|
if (!borrower.borrower) {
|
|
149
149
|
return borrower;
|
|
@@ -426,11 +426,12 @@ export class ComplianceBorrowersService {
|
|
|
426
426
|
}
|
|
427
427
|
|
|
428
428
|
async getBorrowerEmails(userAccess: IUserAccess) {
|
|
429
|
-
const allComplianceBorrower
|
|
429
|
+
const allComplianceBorrower = await BorrowerCompliance
|
|
430
430
|
.find(userAccess.allBorrowers ? {} : { 'borrower': { $in: userAccess.borrowersAccess } })
|
|
431
431
|
.populate('borrower items.item')
|
|
432
432
|
.collation({ locale: 'en' })
|
|
433
|
-
.sort({ 'borrower.name': 1 })
|
|
433
|
+
.sort({ 'borrower.name': 1 })
|
|
434
|
+
.lean<IComplianceBorrowerWithBorrower[]>();
|
|
434
435
|
return allComplianceBorrower.map((b) => {
|
|
435
436
|
const items = b.items.map((item) => {
|
|
436
437
|
return {
|
|
@@ -449,7 +450,7 @@ export class ComplianceBorrowersService {
|
|
|
449
450
|
return;
|
|
450
451
|
}
|
|
451
452
|
return {
|
|
452
|
-
borrower: { _id: b.
|
|
453
|
+
borrower: { _id: b._id.toString(), name: b.borrower?.name ?? '', borrowerId: b.borrower?.id ?? '' },
|
|
453
454
|
email: b.email,
|
|
454
455
|
mainEmails: b.mainEmails ?? [],
|
|
455
456
|
financialEmails: b.financialEmails ?? [],
|
|
@@ -463,11 +464,12 @@ export class ComplianceBorrowersService {
|
|
|
463
464
|
}
|
|
464
465
|
|
|
465
466
|
async getOneBorrowerEmails(userAccess, borrowerId) {
|
|
466
|
-
const borrower
|
|
467
|
+
const borrower = await BorrowerCompliance
|
|
467
468
|
.findOne({ _id: borrowerId })
|
|
468
469
|
.populate('borrower items.item')
|
|
469
470
|
.collation({ locale: 'en' })
|
|
470
|
-
.sort({ 'borrower.name': 1 })
|
|
471
|
+
.sort({ 'borrower.name': 1 })
|
|
472
|
+
.lean<IComplianceBorrowerWithBorrower>();
|
|
471
473
|
const items = borrower.items.map((item) => {
|
|
472
474
|
return {
|
|
473
475
|
value: item.item?.id ?? null,
|
|
@@ -485,7 +487,7 @@ export class ComplianceBorrowersService {
|
|
|
485
487
|
return;
|
|
486
488
|
}
|
|
487
489
|
return {
|
|
488
|
-
borrower: { _id: borrower.
|
|
490
|
+
borrower: { _id: borrower._id.toString(), name: borrower.borrower?.name ?? '', borrowerId: borrower.borrower?._id.toString() ?? '' },
|
|
489
491
|
email: borrower.email,
|
|
490
492
|
mainEmails: borrower.mainEmails ?? [],
|
|
491
493
|
financialEmails: borrower.financialEmails ?? [],
|
|
@@ -587,6 +589,7 @@ export class ComplianceBorrowersService {
|
|
|
587
589
|
.find(userFilter)
|
|
588
590
|
.populate('borrower')
|
|
589
591
|
.populate('items.item')
|
|
592
|
+
.lean<IComplianceBorrowerWithBorrower[]>()
|
|
590
593
|
;
|
|
591
594
|
const finalList = [
|
|
592
595
|
['borrower', 'due date', 'item', 'status'],
|
|
@@ -602,7 +605,7 @@ export class ComplianceBorrowersService {
|
|
|
602
605
|
if (instance.status !== 'ACCEPTED') {
|
|
603
606
|
finalList.push([
|
|
604
607
|
borrower.borrower.name.trim(),
|
|
605
|
-
instance.nextDate,
|
|
608
|
+
instance.nextDate.toString(),
|
|
606
609
|
item.item.name.trim(),
|
|
607
610
|
instance.status,
|
|
608
611
|
]);
|
|
@@ -155,7 +155,7 @@ export declare class LoanTransactionsService {
|
|
|
155
155
|
getTransactionReport(transactionIds: string[], borrowerId: string, effectiveDate: Date): Promise<{
|
|
156
156
|
transactionIdsToMark: string[];
|
|
157
157
|
transactions: {
|
|
158
|
-
[x: string]: (string | number |
|
|
158
|
+
[x: string]: (string | number | string[] | Date)[];
|
|
159
159
|
}[];
|
|
160
160
|
}>;
|
|
161
161
|
getBorrowerIdsForFile(transactionFileId: string): Promise<{
|