gemcap-be-common 1.5.72 → 1.5.74

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.
@@ -3,10 +3,10 @@ import _ from 'lodash';
3
3
  import mongoose from 'mongoose';
4
4
 
5
5
  import {
6
- IBorrowerItemDocument,
7
- IBorrowerItemInstanceDocument,
6
+ IBorrowerItemLean,
7
+ IBorrowerItemInstance,
8
8
  IComplianceFile,
9
- IEmailRecipient,
9
+ IEmailRecipient, IBorrowerItemInstanceLean,
10
10
  } from '../models/ComplianceItem.model';
11
11
  import { IGroupedEmailsUpdate } from '../interfaces/email-addresses.interface';
12
12
  import { EItemProgressStatus } from '../enums/item-progress-status.enum';
@@ -51,6 +51,19 @@ export interface IInstanceStatus {
51
51
  };
52
52
  }
53
53
 
54
+ export interface IBorrowerItemInstanceWithStatusesLean extends IBorrowerItemInstanceLean, IInstanceStatus {
55
+ itemId: mongoose.Types.ObjectId;
56
+ files: (IComplianceFile & { uploadedByUser: string | null; })[];
57
+ }
58
+
59
+ export interface IBorrowerItemWithStatusesLean extends Omit<IBorrowerItemLean, 'instances'> {
60
+ instances: IBorrowerItemInstanceWithStatusesLean[];
61
+ }
62
+
63
+ export interface IComplianceBorrowerDocumentFullWithStatuses extends Omit<IComplianceBorrowerDocumentFull, 'items'> {
64
+ items: IBorrowerItemWithStatusesLean[];
65
+ }
66
+
54
67
  export class ComplianceBorrowersService {
55
68
 
56
69
  constructor(
@@ -67,7 +80,7 @@ export class ComplianceBorrowersService {
67
80
  return true;
68
81
  }
69
82
 
70
- calculateInstanceStatuses(instance: IBorrowerItemInstanceDocument, item: IBorrowerItemDocument): IInstanceStatus {
83
+ calculateInstanceStatuses(instance: IBorrowerItemInstance, item: IBorrowerItemLean): IInstanceStatus {
71
84
  let progress: { text: string, status: string };
72
85
  let score: { value: number, tooltip: string } = null;
73
86
  if (instance.submittedDate) {
@@ -93,7 +106,7 @@ export class ComplianceBorrowersService {
93
106
  return { progress, score };
94
107
  }
95
108
 
96
- async getFullComplianceBorrowerById(complianceBorrowerId: string): Promise<IComplianceBorrowerDocumentFull & { items: IBorrowerItemDocument[] }> {
109
+ async getFullComplianceBorrowerById(complianceBorrowerId: string): Promise<IComplianceBorrowerDocumentFullWithStatuses> {
97
110
  if (!complianceBorrowerId) {
98
111
  return null;
99
112
  }
@@ -111,7 +124,7 @@ export class ComplianceBorrowersService {
111
124
  .transform((borrower) => ({ ...borrower, plaidAccessToken: borrower?.plaidAccessToken ?? false }))
112
125
  .lean<IComplianceBorrowerDocumentFull>();
113
126
  if (!ourBorrower.borrower) {
114
- return Promise.resolve({ ...ourBorrower });
127
+ return Promise.resolve({ ...ourBorrower, items: [] });
115
128
  }
116
129
  const financeBorrower = await FinancialComplianceBorrower.findOne({ borrower: ourBorrower.borrower?._id });
117
130
  if (financeBorrower) {
@@ -125,7 +138,7 @@ export class ComplianceBorrowersService {
125
138
  return Promise.resolve(null);
126
139
  }
127
140
 
128
- const items = { items: [] as IBorrowerItemDocument[], ...ourBorrower }.items.map((item) => {
141
+ const items = { items: [] as IBorrowerItemLean[], ...ourBorrower }.items.map((item) => {
129
142
  return {
130
143
  ...item,
131
144
  instances: item.instances.reduce((acc, instance) => {
@@ -140,13 +153,10 @@ export class ComplianceBorrowersService {
140
153
  console.error({ e });
141
154
  return acc;
142
155
  }
143
- }, <(IBorrowerItemInstanceDocument & IInstanceStatus & {
144
- itemId: mongoose.Types.ObjectId,
145
- files: IComplianceFile[]
146
- })[]>[]),
156
+ }, [] as IBorrowerItemInstanceWithStatusesLean[]),
147
157
  };
148
158
  });
149
- return Promise.resolve({ ...ourBorrower, ...items });
159
+ return Promise.resolve({ ...ourBorrower, items });
150
160
  }
151
161
 
152
162
  async getAllBorrowersShortened(userAccess: IUserAccess) {
@@ -190,7 +200,7 @@ export class ComplianceBorrowersService {
190
200
  } catch (e) {
191
201
  return acc;
192
202
  }
193
- }, []),
203
+ }, [] as IBorrowerItemInstanceWithStatusesLean[]),
194
204
  };
195
205
  });
196
206
 
@@ -204,7 +214,7 @@ export class ComplianceBorrowersService {
204
214
  async generateInstances(complianceBorrowerId) {
205
215
  const complianceBorrower = await this.getFullComplianceBorrowerById(complianceBorrowerId);
206
216
 
207
- const getLatestInstanceDate = (item: IBorrowerItemDocument) => {
217
+ const getLatestInstanceDate = (item: IBorrowerItemLean) => {
208
218
  if (!item.instances || !item.instances.length) {
209
219
  return null;
210
220
  }
@@ -40,6 +40,6 @@ export declare class FileManagerService {
40
40
  findItemByInstanceId(instanceId: any): Promise<any[]>;
41
41
  getFilesNewerThanDate(date: Date): Promise<BorrowerWithFiles[]>;
42
42
  deleteFile(complianceBorrowerId: string, fileId: string): Promise<void>;
43
- getFilesByBorrowerId(borrowerId: string): Promise<import("../models/ComplianceItem.model").IBorrowerItemDocument[]>;
43
+ getFilesByBorrowerId(borrowerId: string): Promise<import("../models/ComplianceItem.model").IBorrowerItemLean[]>;
44
44
  updateAWSID(itemId: any, instanceId: any, fileId: any, awsFileId: any): Promise<void>;
45
45
  }
@@ -1,5 +1,5 @@
1
- /// <reference types="mongoose/types/document" />
2
1
  /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
3
3
  /// <reference types="mongoose/types/aggregate" />
4
4
  /// <reference types="mongoose/types/callback" />
5
5
  /// <reference types="mongoose/types/collection" />
@@ -1,3 +1,4 @@
1
+ /// <reference types="mongoose/types/types" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />