@moneylion/engine-api 1.1.0 → 1.3.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.
package/README.md CHANGED
@@ -92,3 +92,11 @@ This is a relatively normal NPM and Typescript project.
92
92
  1. `npm install` to install dependencies
93
93
  2. `npm run build` to build the project
94
94
  3. `npm test` to run the tests
95
+
96
+ # Publishing to NPM
97
+
98
+ Run the following steps to publish the library to NPM.
99
+
100
+ 0. Update the version number in `package.json`. Commit this change.
101
+ 1. `npm run build` - This will run Typescript to compile the Javascript.
102
+ 2. `npm publish --access=public`. This will publish the library.
package/dist/client.d.ts CHANGED
@@ -10,12 +10,14 @@ type HttpMethod = "GET" | "POST" | "PATCH" | "DELETE";
10
10
  export declare class Client {
11
11
  private host;
12
12
  private auth_token;
13
+ private fetch_impl;
14
+ private timeout_ms;
13
15
  /**
14
16
  * Construct a new client instance.
15
17
  * @param host - The API host URL. Example: https://www.example.com. Should not include a trailing slash.
16
18
  * @param auth_token - The auth token used for authenticating with the API.
17
19
  */
18
- constructor(host: string | undefined, auth_token: string);
20
+ constructor(host: string | undefined, auth_token: string, timeout_ms?: number, fetch_impl?: typeof fetch);
19
21
  /**
20
22
  * Make a GET request.
21
23
  *
@@ -62,7 +64,7 @@ export declare class Client {
62
64
  export declare class ApiError extends Error {
63
65
  /** The HTTP status code.
64
66
  */
65
- failureStatus: number;
67
+ failureStatus?: number;
66
68
  /** The url that was requested.
67
69
  */
68
70
  url: string;
@@ -72,7 +74,13 @@ export declare class ApiError extends Error {
72
74
  /** The serialized body.
73
75
  */
74
76
  body?: string;
75
- constructor(failureStatus: number, failureReason: string, url: string, method: HttpMethod, body?: string);
77
+ constructor({ failureStatus, failureReason, url, method, body }: {
78
+ failureStatus?: number;
79
+ failureReason: string;
80
+ url: string;
81
+ method: HttpMethod;
82
+ body?: string;
83
+ });
76
84
  }
77
85
  /**
78
86
  * An error that the caller has made in the request.
@@ -88,4 +96,6 @@ export declare class ServerError extends ApiError {
88
96
  */
89
97
  export declare class AuthenticationError extends ApiError {
90
98
  }
99
+ export declare class TimeoutError extends ApiError {
100
+ }
91
101
  export {};
package/dist/client.js CHANGED
@@ -21,9 +21,11 @@ export class Client {
21
21
  * @param host - The API host URL. Example: https://www.example.com. Should not include a trailing slash.
22
22
  * @param auth_token - The auth token used for authenticating with the API.
23
23
  */
24
- constructor(host = "https://api.evenfinancial.com", auth_token) {
24
+ constructor(host = "https://api.evenfinancial.com", auth_token, timeout_ms = 10 * 1000, fetch_impl = fetch) {
25
25
  this.host = host;
26
26
  this.auth_token = auth_token;
27
+ this.fetch_impl = fetch_impl;
28
+ this.timeout_ms = timeout_ms;
27
29
  }
28
30
  /**
29
31
  * Make a GET request.
@@ -72,24 +74,56 @@ export class Client {
72
74
  */
73
75
  request(endpoint, method, body) {
74
76
  return __awaiter(this, void 0, void 0, function* () {
75
- const url = `${this.host}/${endpoint}`;
76
- const response = yield fetch(url, {
77
- method: method,
78
- headers: {
79
- "Content-Type": "application/json",
80
- "Accept": "application/json",
81
- "Authorization": `Bearer ${this.auth_token}`,
82
- },
83
- body: body,
77
+ const timeout = new Promise((resolve) => {
78
+ setTimeout(() => resolve(undefined), this.timeout_ms);
84
79
  });
80
+ const url = `${this.host}/${endpoint}`;
81
+ const response = yield Promise.race([
82
+ this.fetch_impl(url, {
83
+ method: method,
84
+ headers: {
85
+ "Content-Type": "application/json",
86
+ "Accept": "application/json",
87
+ "Authorization": `Bearer ${this.auth_token}`,
88
+ },
89
+ body: body,
90
+ }),
91
+ timeout
92
+ ]);
93
+ if (response === undefined) {
94
+ throw new TimeoutError({
95
+ failureReason: "Client Timeout",
96
+ url,
97
+ method,
98
+ body
99
+ });
100
+ }
85
101
  if (response.status >= 500) {
86
- throw new ServerError(response.status, response.statusText, url, method, body);
102
+ throw new ServerError({
103
+ failureStatus: response.status,
104
+ failureReason: response.statusText,
105
+ url,
106
+ method,
107
+ body
108
+ });
87
109
  }
88
110
  if (response.status >= 400) {
89
111
  if (response.status === 401 || response.status === 403) {
90
- throw new AuthenticationError(response.status, response.statusText, url, method, body);
112
+ throw new AuthenticationError({
113
+ failureStatus: response.status,
114
+ failureReason: response.statusText,
115
+ url,
116
+ method,
117
+ body
118
+ });
91
119
  }
92
- throw new ClientError(response.status, response.statusText, url, method, body);
120
+ throw new ClientError({
121
+ failureStatus: response.status,
122
+ failureReason: response.statusText,
123
+ url,
124
+ method,
125
+ body
126
+ });
93
127
  }
94
128
  /* node-fetch types json() as Promise<unknown> to ensure the consumer makes a decision about the
95
129
  * type. We are deciding here to treat it as an object so that consumers of this method can introspect
@@ -103,7 +137,7 @@ export class Client {
103
137
  /** The generic error class used to represent error status codes such as 400 Bad Request.
104
138
  */
105
139
  export class ApiError extends Error {
106
- constructor(failureStatus, failureReason, url, method, body) {
140
+ constructor({ failureStatus, failureReason, url, method, body }) {
107
141
  super(failureReason);
108
142
  this.failureStatus = failureStatus;
109
143
  this.url = url;
@@ -125,3 +159,5 @@ export class ServerError extends ApiError {
125
159
  */
126
160
  export class AuthenticationError extends ApiError {
127
161
  }
162
+ export class TimeoutError extends ApiError {
163
+ }
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, test, beforeAll, afterEach, afterAll, } from "@jest/globals";
2
- import { Client, AuthenticationError, ClientError, ServerError, } from "./client";
2
+ import { Client, AuthenticationError, ClientError, ServerError, TimeoutError, } from "./client";
3
3
  import { setupServer } from "msw/node";
4
4
  import { http, HttpResponse } from "msw";
5
5
  const successBody = { response: "Okay" };
@@ -75,4 +75,12 @@ describe("Client", () => {
75
75
  const response = client.request("network_error", "GET");
76
76
  return expect(response).rejects.toThrow(TypeError);
77
77
  });
78
+ test("Timeout error is raised when a timeout occurs", () => {
79
+ const fetch_impl = () => new Promise((_, reject) => {
80
+ setTimeout(() => reject(new Error("this should be impossible")), 100);
81
+ });
82
+ const client = new Client(testEndpoint, "good_token", 1, fetch_impl);
83
+ const response = client.request("timeout_error", "GET");
84
+ return expect(response).rejects.toThrow(TimeoutError);
85
+ });
78
86
  });
@@ -21,7 +21,10 @@ export declare const originatorImageDecoder: Decoder<components["schemas"]["Orig
21
21
  export declare const originatorDecoder: Decoder<FixNull<components["schemas"]["Originator"]>>;
22
22
  export declare const aprTypeDecoder: Decoder<components["schemas"]["AprType"]>;
23
23
  type OldLoanOffer = components["schemas"]["LoanOffer"];
24
- type LoanOffer = FixNull<OldLoanOffer>;
24
+ type TempLoanOfferWithNulledFields = {
25
+ [P in keyof OldLoanOffer]: P extends "termLength" | "termUnit" ? OldLoanOffer[P] | null | undefined : OldLoanOffer[P];
26
+ };
27
+ type LoanOffer = FixNull<TempLoanOfferWithNulledFields>;
25
28
  export declare const loanOfferDecoder: Decoder<LoanOffer>;
26
29
  export declare const mortgageLoanTypeDecoder: Decoder<components["schemas"]["MortgageLoanType"]>;
27
30
  export declare const mortgageAdjustmentTypeDecoder: Decoder<components["schemas"]["MortgageAdjustmentType"]>;
@@ -34,7 +37,10 @@ export declare const savingsOfferDecoder: Decoder<FixNull<components["schemas"][
34
37
  export declare const specialOfferDecoder: Decoder<FixNull<components["schemas"]["SpecialOffer"]>>;
35
38
  export declare const pendingResponseDecoder: Decoder<FixNull<components["schemas"]["PendingResponse"]>>;
36
39
  type OldRateTable = components["schemas"]["RateTable"];
37
- export type FixedRateTable = FixNull<OldRateTable>;
40
+ type TempRateTableWithNulledFields = {
41
+ [P in keyof OldRateTable]: P extends "loanOffers" ? Array<LoanOffer> : OldRateTable[P];
42
+ };
43
+ export type FixedRateTable = FixNull<TempRateTableWithNulledFields>;
38
44
  export declare const rateTableDecoder: Decoder<FixedRateTable>;
39
45
  export declare const leadUuidDecoder: Decoder<components["schemas"]["LeadUuid"]>;
40
46
  export {};
package/dist/decoders.js CHANGED
@@ -119,8 +119,8 @@ export const loanOfferDecoder = object({
119
119
  sponsored: boolean(),
120
120
  maxAmount: number(),
121
121
  minAmount: optional(number()),
122
- termLength: number(),
123
- termUnit: termUnitDecoder,
122
+ termLength: optional(number()),
123
+ termUnit: optional(termUnitDecoder),
124
124
  displayTermUnit: optional(string()),
125
125
  termDescription: optional(string()),
126
126
  maxApr: optional(number()),
package/package.json CHANGED
@@ -1,10 +1,12 @@
1
1
  {
2
2
  "name": "@moneylion/engine-api",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Interface to engine.tech API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
- "files": ["dist"],
7
+ "files": [
8
+ "dist"
9
+ ],
8
10
  "scripts": {
9
11
  "build": "tsc",
10
12
  "lint": "prettier . --check && eslint src/",
@@ -26,7 +28,8 @@
26
28
  "msw": "^2.2.10",
27
29
  "openapi-typescript": "^6.7.5",
28
30
  "prettier": "3.2.5",
29
- "ts-jest": "^29.1.2"
31
+ "ts-jest": "^29.1.2",
32
+ "typescript": "^5.2.2"
30
33
  },
31
34
  "engines": {
32
35
  "node": ">=18"
@@ -1,206 +0,0 @@
1
- import { components } from "./generated/schema";
2
- export type LeadCreateData = components["schemas"]["LeadCreateData"];
3
- export declare class LeadCreateBuilder {
4
- private leadData;
5
- constructor(startingData?: LeadCreateData);
6
- build(): {
7
- productTypes?: ("credit_card" | "insurance" | "life_insurance" | "loan" | "mortgage" | "savings" | "other")[] | undefined;
8
- uuid?: string | undefined;
9
- sessionUuid?: string | undefined;
10
- loanInformation?: {
11
- purpose?: "other" | "unknown" | "auto" | "auto_purchase" | "auto_refinance" | "baby" | "boat" | "business" | "car_repair" | "cosmetic" | "credit_card_refi" | "debt_consolidation" | "emergency" | "engagement" | "green" | "home_improvement" | "home_purchase" | "home_refi" | "household_expenses" | "large_purchases" | "life_event" | "medical_dental" | "motorcycle" | "moving_relocation" | "rv" | "special_occasion" | "student_loan" | "student_loan_refi" | "taxes" | "vacation" | "wedding" | undefined;
12
- loanAmount?: number | undefined;
13
- } | undefined;
14
- personalInformation?: {
15
- firstName?: string | undefined;
16
- lastName?: string | undefined;
17
- aliasFirstName?: string | undefined;
18
- aliasLastName?: string | undefined;
19
- email?: string | undefined;
20
- city?: string | undefined;
21
- state?: "AK" | "AL" | "AR" | "AZ" | "CA" | "CO" | "CT" | "DC" | "DE" | "FL" | "GA" | "HI" | "IA" | "ID" | "IL" | "IN" | "KS" | "KY" | "LA" | "MA" | "MD" | "ME" | "MI" | "MN" | "MO" | "MS" | "MT" | "NC" | "ND" | "NE" | "NH" | "NJ" | "NM" | "NV" | "NY" | "OH" | "OK" | "OR" | "PA" | "PR" | "RI" | "SC" | "SD" | "TN" | "TX" | "UT" | "VA" | "VI" | "VT" | "WA" | "WI" | "WV" | "WY" | undefined;
22
- workPhone?: string | undefined;
23
- primaryPhone?: string | undefined;
24
- bestTimeToCall?: "morning" | "afternoon" | "evening" | "night" | undefined;
25
- address1?: string | undefined;
26
- address2?: string | undefined;
27
- addressMoveInDate?: string | undefined;
28
- zipcode?: string | undefined;
29
- monthsAtAddress?: number | undefined;
30
- driversLicenseNumber?: string | undefined;
31
- driversLicenseState?: string | undefined;
32
- ipAddress?: string | undefined;
33
- activeMilitary?: boolean | undefined;
34
- militaryVeteran?: boolean | undefined;
35
- dateOfBirth?: string | undefined;
36
- educationLevel?: "other" | "high_school" | "associate" | "bachelors" | "masters" | "doctorate" | "other_grad_degree" | "certificate" | "did_not_graduate" | "still_enrolled" | undefined;
37
- ssn?: string | undefined;
38
- citizenshipStatus?: "other" | "citizen" | "permanent_resident" | undefined;
39
- } | undefined;
40
- personalReferenceInformation?: {
41
- firstName?: string | undefined;
42
- lastName?: string | undefined;
43
- primaryPhone?: string | undefined;
44
- relationType?: "other" | "parent" | "employer" | "spouse" | "guardian" | "sibling" | "relative" | "friend" | undefined;
45
- } | undefined;
46
- mortgageInformation?: {
47
- propertyType?: "rent" | "condo" | "multi_unit" | "single_family" | "townhouse" | undefined;
48
- propertyValue?: number | undefined;
49
- mortgageBalance?: number | undefined;
50
- lenderName?: string | undefined;
51
- hasFHALoan?: boolean | undefined;
52
- currentWithLoan?: boolean | undefined;
53
- propertyStatus?: "own_outright" | "own_with_mortgage" | "rent" | undefined;
54
- mortgageType?: "purchase" | "refinance" | undefined;
55
- mortgageAmount?: number | undefined;
56
- downPaymentAmount?: number | undefined;
57
- propertyState?: string | undefined;
58
- propertyCounty?: string | undefined;
59
- propertyAddress1?: string | undefined;
60
- propertyAddress2?: string | undefined;
61
- propertyZipcode?: string | undefined;
62
- propertyCity?: string | undefined;
63
- refinanceAmount?: number | undefined;
64
- cashOutAmount?: number | undefined;
65
- occupancyType?: "primary" | "secondary" | "investment" | undefined;
66
- refinanceType?: "cash_out" | "rate_term" | undefined;
67
- propertySearchStatus?: "found" | "not_found" | undefined;
68
- numUnits?: number | undefined;
69
- closingDate?: string | undefined;
70
- purchaseStatus?: "no_offer" | "offer_accepted" | "offer_pending" | "under_contract" | undefined;
71
- purchaseDate?: string | undefined;
72
- monthlyHoaFee?: number | undefined;
73
- mortgageCompany?: string | undefined;
74
- mortgageEscrowAmount?: number | undefined;
75
- } | undefined;
76
- creditCardInformation?: {
77
- allowAnnualFee?: boolean | undefined;
78
- cardPurposes?: ("balance_transfer" | "cash_back" | "earning_rewards" | "improve_credit" | "low_interest" | "new_to_credit" | "student" | "travel_incentives")[] | undefined;
79
- } | undefined;
80
- savingsInformation?: {
81
- minDepositAmount?: number | undefined;
82
- maxDepositAmount?: number | undefined;
83
- } | undefined;
84
- creditInformation?: {
85
- providedCreditRating?: "excellent" | "good" | "fair" | "poor" | "limited" | "unknown" | undefined;
86
- providedNumericCreditScore?: number | undefined;
87
- } | undefined;
88
- financialInformation?: {
89
- employmentStatus?: "other" | "employed" | "employed_full_time" | "employed_part_time" | "military" | "not_employed" | "self_employed" | "retired" | undefined;
90
- employmentPayFrequency?: "monthly" | "weekly" | "biweekly" | "twice_monthly" | undefined;
91
- annualIncome?: number | undefined;
92
- monthlyNetIncome?: number | undefined;
93
- bankName?: string | undefined;
94
- bankRoutingNumber?: string | undefined;
95
- bankAccountType?: "savings" | "other" | "checking" | undefined;
96
- creditCardDebt?: number | undefined;
97
- monthsAtBank?: number | undefined;
98
- bankAccountNumber?: string | undefined;
99
- monthlyDebt?: number | undefined;
100
- totalAssets?: number | undefined;
101
- monthlyHousingPayment?: number | undefined;
102
- availableAssets?: number | undefined;
103
- additionalIncome?: number | undefined;
104
- additionalIncomeFrequency?: "monthly" | "weekly" | "biweekly" | "twice_monthly" | undefined;
105
- hasDirectDeposit?: boolean | undefined;
106
- totalUnsecuredDebt?: number | undefined;
107
- } | undefined;
108
- employmentInformation?: {
109
- employerName?: string | undefined;
110
- employerAddress?: string | undefined;
111
- employerAddress2?: string | undefined;
112
- employerCity?: string | undefined;
113
- employerPhone?: string | undefined;
114
- employerState?: string | undefined;
115
- employerZip?: string | undefined;
116
- jobTitle?: string | undefined;
117
- monthsEmployed?: number | undefined;
118
- directDeposit?: boolean | undefined;
119
- payDate1?: string | undefined;
120
- payDate2?: string | undefined;
121
- startDate?: string | undefined;
122
- } | undefined;
123
- legalInformation?: {
124
- consentsToFcra?: boolean | undefined;
125
- consentsToSms?: boolean | undefined;
126
- consentsToTcpa?: boolean | undefined;
127
- fcraLanguage?: string | undefined;
128
- tcpaLanguage?: string | undefined;
129
- } | undefined;
130
- educationInformation?: {
131
- educationLevel?: "other" | "high_school" | "associate" | "bachelors" | "masters" | "doctorate" | "other_grad_degree" | "certificate" | "did_not_graduate" | "still_enrolled" | undefined;
132
- graduateDegreeType?: "other" | "doctor_of_medicine" | "doctor_of_osteopathic_medicine" | "doctor_of_optometry" | "doctor_of_dental_medicine" | "dentariae_medicinae_doctoris" | "doctor_of_dental_surgery" | "doctor_of_veterinary_medicine" | "doctor_of_pharmacy" | "veterinariae_medicinae_doctoris" | "master_of_arts" | "master_of_science" | "master_of_research" | "master_of_research_project" | "master_of_studies" | "master_of_business_administration" | "master_of_library_science" | "master_of_public_administration" | "master_of_public_health" | "master_of_laws" | "master_of_arts_liberal_studies" | "master_of_fine_arts" | "master_of_music" | "master_of_education" | "master_of_engineering" | "master_of_architecture" | "juris_doctor" | undefined;
133
- universityAttended?: string | undefined;
134
- universityOpeId?: string | undefined;
135
- graduationDate?: string | undefined;
136
- graduateGraduationDate?: string | undefined;
137
- graduateLastAttendedDate?: string | undefined;
138
- graduateUniversityAttended?: string | undefined;
139
- graduateUniversityOpeId?: string | undefined;
140
- undergraduateGraduationDate?: string | undefined;
141
- undergraduateLastAttendedDate?: string | undefined;
142
- undergraduateUniversityAttended?: string | undefined;
143
- undergraduateUniversityOpeId?: string | undefined;
144
- } | undefined;
145
- coApplicantInformation?: {
146
- firstName?: string | undefined;
147
- lastName?: string | undefined;
148
- dateOfBirth?: string | undefined;
149
- annualIncome?: number | undefined;
150
- streetAddress1?: string | undefined;
151
- streetAddress2?: string | undefined;
152
- city?: string | undefined;
153
- state?: "AK" | "AL" | "AR" | "AZ" | "CA" | "CO" | "CT" | "DC" | "DE" | "FL" | "GA" | "HI" | "IA" | "ID" | "IL" | "IN" | "KS" | "KY" | "LA" | "MA" | "MD" | "ME" | "MI" | "MN" | "MO" | "MS" | "MT" | "NC" | "ND" | "NE" | "NH" | "NJ" | "NM" | "NV" | "NY" | "OH" | "OK" | "OR" | "PA" | "PR" | "RI" | "SC" | "SD" | "TN" | "TX" | "UT" | "VA" | "VI" | "VT" | "WA" | "WI" | "WV" | "WY" | undefined;
154
- zipcode?: string | undefined;
155
- } | undefined;
156
- healthInformation?: {
157
- gender?: "male" | "female" | undefined;
158
- heightInInches?: number | undefined;
159
- weightInPounds?: number | undefined;
160
- tobaccoSmoker?: boolean | undefined;
161
- } | undefined;
162
- refinanceLoans?: {
163
- accountNumber?: string | undefined;
164
- incomeBasedRepayment?: boolean | undefined;
165
- interestRate?: number | undefined;
166
- loanAmount?: number | undefined;
167
- loanServicer?: string | undefined;
168
- loanType?: "federal_student_loan" | "private_student_loan" | undefined;
169
- nextPaymentAmount?: number | undefined;
170
- nextPaymentDate?: string | undefined;
171
- }[] | undefined;
172
- identificationInformation?: {
173
- idNumber?: string | undefined;
174
- idState?: string | undefined;
175
- idType?: "driver_license" | "state_id" | "passport" | undefined;
176
- } | undefined;
177
- clientTags?: {
178
- [key: string]: string[];
179
- } | undefined;
180
- sessionInformation?: {
181
- ipAddress?: string | undefined;
182
- userAgent?: string | undefined;
183
- } | undefined;
184
- formCompleted?: boolean | undefined;
185
- referralCompanyUuid?: string | undefined;
186
- trackingUuid?: string | undefined;
187
- };
188
- productTypes(types: components["schemas"]["ProductType"][]): this;
189
- loanInformation(loanInfo: components["schemas"]["LeadLoanInformation"]): this;
190
- personalInformation(personalInfo: components["schemas"]["LeadPersonalInformation"]): this;
191
- personalReferenceInformation(pRefInfo: components["schemas"]["PersonalReferenceInformation"]): this;
192
- mortgageInformation(mortgageInfo: components["schemas"]["LeadMortgageInformation"]): this;
193
- creditCardInformation(creditCardInformation: components["schemas"]["LeadCreditCardInformation"]): this;
194
- savingsInformation(savingsInformation: components["schemas"]["LeadSavingsInformation"]): this;
195
- creditInformation(creditInformation: components["schemas"]["LeadCreditInformation"]): this;
196
- financialInformation(financialInformation: components["schemas"]["LeadFinancialInformation"]): this;
197
- employmentInformation(employmentInformation: components["schemas"]["LeadEmploymentInformation"]): this;
198
- legalInformation(legalInformation: components["schemas"]["LeadLegalInformation"]): this;
199
- educationInformation(educationInformation: components["schemas"]["LeadEducationInformation"]): this;
200
- coApplicantInformation(coApplicantInformation: components["schemas"]["LeadCoApplicantInformation"]): this;
201
- healthInformation(healthInformation: components["schemas"]["LeadHealthInformation"]): this;
202
- refinanceLoans(refinanceLoans: components["schemas"]["RefinanceLoanInformation"][]): this;
203
- identificationInformation(identificationInformation: components["schemas"]["LeadIdentificationInformation"]): this;
204
- clientTags(clientTags: components["schemas"]["ClientTags"]): this;
205
- sessionInformation(sessionInformation: components["schemas"]["LeadSessionInformation"]): this;
206
- }
package/dist/builders.js DELETED
@@ -1,80 +0,0 @@
1
- export class LeadCreateBuilder {
2
- constructor(startingData = {}) {
3
- this.leadData = startingData;
4
- }
5
- build() {
6
- return this.leadData;
7
- }
8
- productTypes(types) {
9
- this.leadData.productTypes = types;
10
- return this;
11
- }
12
- loanInformation(loanInfo) {
13
- this.leadData.loanInformation = loanInfo;
14
- return this;
15
- }
16
- personalInformation(personalInfo) {
17
- this.leadData.personalInformation = personalInfo;
18
- return this;
19
- }
20
- personalReferenceInformation(pRefInfo) {
21
- this.leadData.personalReferenceInformation = pRefInfo;
22
- return this;
23
- }
24
- mortgageInformation(mortgageInfo) {
25
- this.leadData.mortgageInformation = mortgageInfo;
26
- return this;
27
- }
28
- creditCardInformation(creditCardInformation) {
29
- this.leadData.creditCardInformation = creditCardInformation;
30
- return this;
31
- }
32
- savingsInformation(savingsInformation) {
33
- this.leadData.savingsInformation = savingsInformation;
34
- return this;
35
- }
36
- creditInformation(creditInformation) {
37
- this.leadData.creditInformation = creditInformation;
38
- return this;
39
- }
40
- financialInformation(financialInformation) {
41
- this.leadData.financialInformation = financialInformation;
42
- return this;
43
- }
44
- employmentInformation(employmentInformation) {
45
- this.leadData.employmentInformation = employmentInformation;
46
- return this;
47
- }
48
- legalInformation(legalInformation) {
49
- this.leadData.legalInformation = legalInformation;
50
- return this;
51
- }
52
- educationInformation(educationInformation) {
53
- this.leadData.educationInformation = educationInformation;
54
- return this;
55
- }
56
- coApplicantInformation(coApplicantInformation) {
57
- this.leadData.coApplicantInformation = coApplicantInformation;
58
- return this;
59
- }
60
- healthInformation(healthInformation) {
61
- this.leadData.healthInformation = healthInformation;
62
- return this;
63
- }
64
- refinanceLoans(refinanceLoans) {
65
- this.leadData.refinanceLoans = refinanceLoans;
66
- return this;
67
- }
68
- identificationInformation(identificationInformation) {
69
- this.leadData.identificationInformation = identificationInformation;
70
- return this;
71
- }
72
- clientTags(clientTags) {
73
- this.leadData.clientTags = clientTags;
74
- return this;
75
- }
76
- sessionInformation(sessionInformation) {
77
- this.leadData.sessionInformation = sessionInformation;
78
- return this;
79
- }
80
- }