11/* eslint-disable prettier/prettier */
22/* eslint-disable @typescript-eslint/restrict-template-expressions */
33import fs from 'fs' ;
4+ import path from 'path' ;
45import open from 'open' ;
6+ import { Messages } from '@salesforce/core' ;
57import { AssessmentInfo } from '../interfaces' ;
68import { DashboardParam } from '../reportGenerator/reportInterfaces' ;
79import { OmnistudioOrgDetails } from '../orgUtils' ;
@@ -16,22 +18,23 @@ import { DRAssessmentReporter } from './DRAssessmentReporter';
1618import { FlexcardAssessmentReporter } from './FlexcardAssessmentReporter' ;
1719
1820export class AssessmentReporter {
19- private static basePath = process . cwd ( ) + '/ assessment_reports';
20- private static omniscriptAssessmentFilePath = this . basePath + '/ omniscript_assessment.html';
21- private static flexcardAssessmentFilePath = this . basePath + '/ flexcard_assessment.html';
22- private static integrationProcedureAssessmentFilePath = this . basePath + '/ integration_procedure_assessment.html';
23- private static dataMapperAssessmentFilePath = this . basePath + '/ datamapper_assessment.html';
24- private static apexAssessmentFilePath = this . basePath + '/ apex_assessment.html';
25- private static dashboardFilePath = this . basePath + '/ dashboard.html';
26- private static dashboardTemplate = process . cwd ( ) + '/ src/templates/dashboard.template';
21+ private static basePath = path . join ( process . cwd ( ) , ' assessment_reports') ;
22+ private static omniscriptAssessmentFileName = ' omniscript_assessment.html';
23+ private static flexcardAssessmentFileName = ' flexcard_assessment.html';
24+ private static integrationProcedureAssessmentFileName = ' integration_procedure_assessment.html';
25+ private static dataMapperAssessmentFileName = ' datamapper_assessment.html';
26+ private static apexAssessmentFileName = ' apex_assessment.html';
27+ private static dashboardFileName = ' dashboard.html';
28+ private static dashboardTemplate = path . join ( process . cwd ( ) , ' src/templates/dashboard.template') ;
2729 // TODO: Uncomment code once MVP for migration is completed
2830 // private static lwcAssessmentFilePath = this.basePath + '/lwc_assessment.html';
2931 public static async generate (
3032 result : AssessmentInfo ,
3133 instanceUrl : string ,
3234 omnistudioOrgDetails : OmnistudioOrgDetails ,
3335 assessOnly : string ,
34- relatedObjects : string [ ]
36+ relatedObjects : string [ ] ,
37+ messages : Messages
3538 ) : Promise < void > {
3639 fs . mkdirSync ( this . basePath , { recursive : true } ) ;
3740
@@ -41,33 +44,36 @@ export class AssessmentReporter {
4144 ) ;
4245 if ( ! assessOnly ) {
4346 this . createDocument (
44- this . omniscriptAssessmentFilePath ,
47+ path . join ( this . basePath , this . omniscriptAssessmentFileName ) ,
4548 TemplateParser . generate (
4649 assessmentReportTemplate ,
4750 OSAssessmentReporter . getOmniscriptAssessmentData (
4851 result . omniAssessmentInfo . osAssessmentInfos ,
4952 instanceUrl ,
5053 omnistudioOrgDetails
51- )
54+ ) ,
55+ messages
5256 )
5357 ) ;
5458
5559 this . createDocument (
56- this . flexcardAssessmentFilePath ,
60+ path . join ( this . basePath , this . flexcardAssessmentFileName ) ,
5761 TemplateParser . generate (
5862 assessmentReportTemplate ,
5963 FlexcardAssessmentReporter . getFlexcardAssessmentData (
6064 result . flexCardAssessmentInfos ,
6165 instanceUrl ,
6266 omnistudioOrgDetails
63- )
67+ ) ,
68+ messages
6469 )
6570 ) ;
6671 this . createDocument (
67- this . apexAssessmentFilePath ,
72+ path . join ( this . basePath , this . apexAssessmentFileName ) ,
6873 TemplateParser . generate (
6974 assessmentReportTemplate ,
70- ApexAssessmentReporter . getApexAssessmentData ( result . apexAssessmentInfos , omnistudioOrgDetails )
75+ ApexAssessmentReporter . getApexAssessmentData ( result . apexAssessmentInfos , omnistudioOrgDetails ) ,
76+ messages
7177 )
7278 ) ;
7379
@@ -77,82 +83,88 @@ export class AssessmentReporter {
7783 // );
7884
7985 this . createDocument (
80- this . integrationProcedureAssessmentFilePath ,
86+ path . join ( this . basePath , this . integrationProcedureAssessmentFileName ) ,
8187 TemplateParser . generate (
8288 assessmentReportTemplate ,
8389 IPAssessmentReporter . getIntegrationProcedureAssessmentData (
8490 result . omniAssessmentInfo . ipAssessmentInfos ,
8591 instanceUrl ,
8692 omnistudioOrgDetails
87- )
93+ ) ,
94+ messages
8895 )
8996 ) ;
9097
9198 this . createDocument (
92- this . dataMapperAssessmentFilePath ,
99+ path . join ( this . basePath , this . dataMapperAssessmentFileName ) ,
93100 TemplateParser . generate (
94101 assessmentReportTemplate ,
95102 DRAssessmentReporter . getDatamapperAssessmentData (
96103 result . dataRaptorAssessmentInfos ,
97104 instanceUrl ,
98105 omnistudioOrgDetails
99- )
106+ ) ,
107+ messages
100108 )
101109 ) ;
102110 } else {
103111 switch ( assessOnly ) {
104112 case Constants . Omniscript :
105113 this . createDocument (
106- this . omniscriptAssessmentFilePath ,
114+ path . join ( this . basePath , this . omniscriptAssessmentFileName ) ,
107115 TemplateParser . generate (
108116 assessmentReportTemplate ,
109117 OSAssessmentReporter . getOmniscriptAssessmentData (
110118 result . omniAssessmentInfo . osAssessmentInfos ,
111119 instanceUrl ,
112120 omnistudioOrgDetails
113- )
121+ ) ,
122+ messages
114123 )
115124 ) ;
116125 break ;
117126
118127 case Constants . Flexcard :
119128 this . createDocument (
120- this . flexcardAssessmentFilePath ,
129+ path . join ( this . basePath , this . flexcardAssessmentFileName ) ,
121130 TemplateParser . generate (
122131 assessmentReportTemplate ,
123132 FlexcardAssessmentReporter . getFlexcardAssessmentData (
124133 result . flexCardAssessmentInfos ,
125134 instanceUrl ,
126135 omnistudioOrgDetails
127- )
136+ ) ,
137+ messages
128138 )
129139 ) ;
130140 break ;
131141
132142 case Constants . IntegrationProcedure :
133143 this . createDocument (
134- this . integrationProcedureAssessmentFilePath ,
144+ path . join ( this . basePath , this . integrationProcedureAssessmentFileName ) ,
135145 TemplateParser . generate (
136146 assessmentReportTemplate ,
137147 IPAssessmentReporter . getIntegrationProcedureAssessmentData (
138148 result . omniAssessmentInfo . ipAssessmentInfos ,
139149 instanceUrl ,
140150 omnistudioOrgDetails
141- )
151+ ) ,
152+ messages
142153 )
143154 ) ;
144155 break ;
145156
146157 case Constants . DataMapper :
147158 this . createDocument (
148- this . dataMapperAssessmentFilePath ,
159+ path . join ( this . basePath , this . dataMapperAssessmentFileName ) ,
149160 TemplateParser . generate (
150161 assessmentReportTemplate ,
151162 DRAssessmentReporter . getDatamapperAssessmentData (
152163 result . dataRaptorAssessmentInfos ,
153164 instanceUrl ,
154165 omnistudioOrgDetails
155- )
166+ ) ,
167+ messages
156168 )
157169 ) ;
158170 break ;
@@ -163,10 +175,11 @@ export class AssessmentReporter {
163175
164176 if ( relatedObjects && relatedObjects . includes ( Constants . Apex ) ) {
165177 this . createDocument (
166- this . apexAssessmentFilePath ,
178+ path . join ( this . basePath , this . apexAssessmentFileName ) ,
167179 TemplateParser . generate (
168180 assessmentReportTemplate ,
169- ApexAssessmentReporter . getApexAssessmentData ( result . apexAssessmentInfos , omnistudioOrgDetails )
181+ ApexAssessmentReporter . getApexAssessmentData ( result . apexAssessmentInfos , omnistudioOrgDetails ) ,
182+ messages
170183 )
171184 ) ;
172185 }
@@ -179,20 +192,21 @@ export class AssessmentReporter {
179192 // }
180193
181194 // await this.createMasterDocument(nameUrls, basePath);
182- this . createDashboard ( this . basePath , result , omnistudioOrgDetails ) ;
195+ this . createDashboard ( this . basePath , result , omnistudioOrgDetails , messages ) ;
183196 pushAssestUtilites ( 'javascripts' , this . basePath ) ;
184197 pushAssestUtilites ( 'styles' , this . basePath ) ;
185- await open ( 'file://' + this . dashboardFilePath ) ;
198+ await open ( path . join ( this . basePath , this . dashboardFileName ) ) ;
186199 }
187200 private static createDashboard (
188201 basePath : string ,
189202 result : AssessmentInfo ,
190- omnistudioOrgDetails : OmnistudioOrgDetails
203+ omnistudioOrgDetails : OmnistudioOrgDetails ,
204+ messages : Messages
191205 ) : void {
192206 const dashboardTemplate = fs . readFileSync ( this . dashboardTemplate , 'utf8' ) ;
193207 this . createDocument (
194- basePath + '/dashboard.html' ,
195- TemplateParser . generate ( dashboardTemplate , this . createDashboardParam ( result , omnistudioOrgDetails ) )
208+ path . join ( basePath , this . dashboardFileName ) ,
209+ TemplateParser . generate ( dashboardTemplate , this . createDashboardParam ( result , omnistudioOrgDetails ) , messages )
196210 ) ;
197211 }
198212 private static createDashboardParam (
@@ -205,35 +219,35 @@ export class AssessmentReporter {
205219 org : getOrgDetailsForReport ( omnistudioOrgDetails ) ,
206220 assessmentDate : new Date ( ) . toISOString ( ) ,
207221 summaryItems : [
222+ {
223+ name : 'DataMapper' ,
224+ total : result . dataRaptorAssessmentInfos . length ,
225+ data : DRAssessmentReporter . getSummaryData ( result . dataRaptorAssessmentInfos ) ,
226+ file : this . dataMapperAssessmentFileName ,
227+ } ,
228+ {
229+ name : 'Integration Procedure' ,
230+ total : result . omniAssessmentInfo . ipAssessmentInfos . length ,
231+ data : IPAssessmentReporter . getSummaryData ( result . omniAssessmentInfo . ipAssessmentInfos ) ,
232+ file : this . integrationProcedureAssessmentFileName ,
233+ } ,
208234 {
209235 name : 'OmniScript' ,
210236 total : result . omniAssessmentInfo . osAssessmentInfos . length ,
211237 data : OSAssessmentReporter . getSummaryData ( result . omniAssessmentInfo . osAssessmentInfos ) ,
212- file : this . omniscriptAssessmentFilePath ,
238+ file : this . omniscriptAssessmentFileName ,
213239 } ,
214240 {
215241 name : 'Flexcard' ,
216242 total : result . flexCardAssessmentInfos . length ,
217243 data : FlexcardAssessmentReporter . getSummaryData ( result . flexCardAssessmentInfos ) ,
218- file : this . flexcardAssessmentFilePath ,
219- } ,
220- {
221- name : 'Integration Procedure' ,
222- total : result . omniAssessmentInfo . ipAssessmentInfos . length ,
223- data : IPAssessmentReporter . getSummaryData ( result . omniAssessmentInfo . ipAssessmentInfos ) ,
224- file : this . integrationProcedureAssessmentFilePath ,
225- } ,
226- {
227- name : 'DataMapper' ,
228- total : result . dataRaptorAssessmentInfos . length ,
229- data : DRAssessmentReporter . getSummaryData ( result . dataRaptorAssessmentInfos ) ,
230- file : this . dataMapperAssessmentFilePath ,
244+ file : this . flexcardAssessmentFileName ,
231245 } ,
232246 {
233247 name : 'Apex' ,
234248 total : result . apexAssessmentInfos . length ,
235249 data : ApexAssessmentReporter . getSummaryData ( result . apexAssessmentInfos ) ,
236- file : this . apexAssessmentFilePath ,
250+ file : this . apexAssessmentFileName ,
237251 } ,
238252 ] ,
239253 } ;
0 commit comments