Skip to content

Commit 33a38ce

Browse files
feat: broke assessment report
1 parent dc20cc0 commit 33a38ce

File tree

4 files changed

+95
-13
lines changed

4 files changed

+95
-13
lines changed

src/migration/dataraptor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ export class DataRaptorMigrationTool extends BaseMigrationTool implements Migrat
188188
DebugTimer.getInstance().lap('Query data raptors');
189189
const dataRaptors = await this.getAllDataRaptors();
190190
const dataRaptorAssessmentInfos = this.processDRComponents(dataRaptors);
191-
this.ux.log('dataRaptorAssessmentInfos');
192-
this.ux.log(dataRaptorAssessmentInfos.toString());
191+
/* this.ux.log('dataRaptorAssessmentInfos');
192+
this.ux.log(dataRaptorAssessmentInfos.toString()); */
193193
return dataRaptorAssessmentInfos;
194194
} catch (err) {
195195
this.ux.log(err);

src/migration/related/BaseRealtedObjectMigration.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,4 @@ export abstract class BaseRelatedObjectMigration {
1010
this.namespace = namespace;
1111
this.org = org;
1212
}
13-
public abstract processObjectType(): string;
1413
}

src/utils/interfaces.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,8 @@ export interface FileParser {
119119
export interface FileProcessor {
120120
process(file: File, type: string, namespace: string): string;
121121
}
122+
123+
export interface nameUrl {
124+
name: string;
125+
url: string;
126+
}

src/utils/resultsbuilder/assessmentReporter.ts

Lines changed: 88 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,103 @@ import {
1111
OmniAssessmentInfo,
1212
FlexCardAssessmentInfo,
1313
DataRaptorAssessmentInfo,
14+
nameUrl,
1415
} from '../interfaces';
1516

1617
export class AssessmentReporter {
1718
public static async generate(result: AssessmentInfo, instanceUrl: string): Promise<void> {
18-
let htmlBody = '';
19+
const basePath = process.cwd() + '/assessment_reports';
20+
fs.mkdirSync(basePath, { recursive: true });
21+
const omniscriptAssessmentFilePath = basePath + '/omniscript_assessment.html';
22+
const flexcardAssessmentFilePath = basePath + '/flexcard_assessment.html';
23+
const integrationProcedureAssessmentFilePath = basePath + '/integration_procedure_assessment.html';
24+
const dataMapperAssessmentFilePath = basePath + '/datamapper_assessment.html';
25+
const apexAssessmentFilePath = basePath + '/apex_assessment.html';
26+
const lwcAssessmentFilePath = basePath + '/lwc_assessment.html';
1927

20-
htmlBody += '<br />' + this.generateOmniAssesment(result.omniAssessmentInfo, instanceUrl);
21-
htmlBody += '<br />' + this.generateCardAssesment(result.flexCardAssessmentInfos, instanceUrl);
22-
htmlBody += '<br />' + this.generateDRAssesment(result.dataRaptorAssessmentInfos, instanceUrl);
23-
htmlBody += '<br />' + this.generateApexAssesment(result.apexAssessmentInfos);
24-
htmlBody += '<br />' + this.generateLwcAssesment(result.lwcAssessmentInfos);
28+
this.createDocument(
29+
omniscriptAssessmentFilePath,
30+
this.generateOmniAssesment(result.omniAssessmentInfo, instanceUrl)
31+
);
32+
this.createDocument(
33+
flexcardAssessmentFilePath,
34+
this.generateCardAssesment(result.flexCardAssessmentInfos, instanceUrl)
35+
);
36+
this.createDocument(
37+
integrationProcedureAssessmentFilePath,
38+
this.generateIPAssesment(result?.omniAssessmentInfo.ipAssessmentInfos, instanceUrl)
39+
);
40+
this.createDocument(
41+
dataMapperAssessmentFilePath,
42+
this.generateDRAssesment(result.dataRaptorAssessmentInfos, instanceUrl)
43+
);
44+
this.createDocument(apexAssessmentFilePath, this.generateApexAssesment(result.apexAssessmentInfos));
45+
this.createDocument(lwcAssessmentFilePath, this.generateLwcAssesment(result.lwcAssessmentInfos));
46+
const nameUrls = [
47+
{
48+
name: 'omnscript assessment report',
49+
url: omniscriptAssessmentFilePath,
50+
},
51+
{
52+
name: 'flexcard assessment report',
53+
url: flexcardAssessmentFilePath,
54+
},
55+
{
56+
name: 'Integration Procedure assessment report',
57+
url: integrationProcedureAssessmentFilePath,
58+
},
59+
{
60+
name: 'DataMapper assessment report',
61+
url: dataMapperAssessmentFilePath,
62+
},
63+
{
64+
name: 'Apex assessment report',
65+
url: apexAssessmentFilePath,
66+
},
67+
{
68+
name: 'LWC assessment report',
69+
url: lwcAssessmentFilePath,
70+
},
71+
];
72+
await this.createMasterDocument(nameUrls, basePath);
73+
}
2574

26-
const doc = this.generateDocument(htmlBody);
27-
const fileUrl = process.cwd() + '/assessmentresults.html';
28-
fs.writeFileSync(fileUrl, doc);
75+
private static async createMasterDocument(reports: nameUrl[], basePath: string): Promise<void> {
76+
let listBody = '';
77+
for (const report of reports) {
78+
listBody += ` <li class="slds-list__item" >
79+
<a href="${report.url}" class="slds-text-link" > ${report.name} </a>
80+
</li>`;
81+
}
82+
const body = `
83+
<!DOCTYPE html>
84+
<html lang="en">
85+
<head>
86+
<meta charset="UTF-8">
87+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
88+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/design-system/2.17.5/styles/salesforce-lightning-design-system.min.css">
89+
<title>SLDS Bulleted List</title>
90+
</head>
91+
<body>
92+
<div class="slds-p-around_medium">
93+
<h1 class="slds-text-heading_medium">Assessment Reports</h1>
94+
<ul class="slds-list_vertical slds-has-dividers_left-space">
95+
${listBody}
96+
</ul>
97+
</div>
98+
</body>
99+
</html>
100+
`;
101+
const fileUrl = basePath + '/assessmentresults.html';
29102

103+
fs.writeFileSync(fileUrl, body);
30104
await open('file://' + fileUrl);
31105
}
32106

107+
private static createDocument(filePath: string, htmlBody: string): void {
108+
const doc = this.generateDocument(htmlBody);
109+
fs.writeFileSync(filePath, doc);
110+
}
33111
private static generateLwcAssesment(lwcAssessmentInfos: LWCAssessmentInfo[]): string {
34112
let tableBody = '';
35113
tableBody += `
@@ -92,7 +170,7 @@ export class AssessmentReporter {
92170

93171
// htmlBody += '<br />' + this.generateLwcAssesment(result.lwcAssessmentInfos);
94172
htmlBody += '<br />' + this.generateOSAssesment(omniAssessmentInfo.osAssessmentInfos, instanceUrl);
95-
htmlBody += '<br />' + this.generateIPAssesment(omniAssessmentInfo.ipAssessmentInfos, instanceUrl);
173+
// htmlBody += '<br />' + this.generateIPAssesment(omniAssessmentInfo.ipAssessmentInfos, instanceUrl);
96174
return htmlBody;
97175
}
98176

0 commit comments

Comments
 (0)