Skip to content

Commit 034231f

Browse files
committed
Comments addressed
1 parent 4445898 commit 034231f

File tree

9 files changed

+116
-27
lines changed

9 files changed

+116
-27
lines changed

src/commands/omnistudio/migration/migrate.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,11 @@ export default class Migrate extends OmniStudioBaseCommand {
9191

9292
// Enable Omni preferences
9393
try {
94+
orgs.rollbackFlags = await OrgPreferences.checkRollbackFlags(conn);
9495
await OrgPreferences.enableOmniPreferences(conn);
9596
} catch (error) {
9697
const errMsg = error instanceof Error ? error.message : String(error);
97-
this.ux.error(`Could not enable Omni preferences: ${errMsg}`);
98-
throw error;
98+
this.ux.log(`Could not enable Omni preferences: ${errMsg}`);
9999
}
100100

101101
const namespace = orgs.packageDetails.namespace;

src/utils/interfaces.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,5 +162,5 @@ export interface QueryResult {
162162
};
163163
DeveloperName: string;
164164
Value: string;
165-
}>;
165+
}>
166166
}

src/utils/resultsbuilder/DRAssessmentReporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ export class DRAssessmentReporter {
1313
public static generateDRAssesment(
1414
dataRaptorAssessmentInfos: DataRaptorAssessmentInfo[],
1515
instanceUrl: string,
16-
org: ReportHeaderFormat[]
16+
org: ReportHeaderFormat[],
17+
rollbackFlags?: string[]
1718
): string {
1819
// Header Column
1920
const headerColumn: HeaderColumn[] = [

src/utils/resultsbuilder/IPAssessmentReporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ export class IPAssessmentReporter {
1212
public static generateIPAssesment(
1313
ipAssessmentInfos: IPAssessmentInfo[],
1414
instanceUrl: string,
15-
org: ReportHeaderFormat[]
15+
org: ReportHeaderFormat[],
16+
rollbackFlags?: string[]
1617
): string {
1718
// Define multi-row headers
1819
const headerColumn: HeaderColumn[] = [

src/utils/resultsbuilder/OSAssessmentReporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ export class OSAssessmentReporter {
1414
public static generateOSAssesment(
1515
osAssessmentInfos: OSAssessmentInfo[],
1616
instanceUrl: string,
17-
org: ReportHeaderFormat[]
17+
org: ReportHeaderFormat[],
18+
rollbackFlags?: string[]
1819
): string {
1920
// Header Column
2021
const headerColumn: HeaderColumn[] = [

src/utils/resultsbuilder/assessmentReporter.ts

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,39 @@ export class AssessmentReporter {
2929
const integrationProcedureAssessmentFilePath = basePath + '/integration_procedure_assessment.html';
3030
const dataMapperAssessmentFilePath = basePath + '/datamapper_assessment.html';
3131
const apexAssessmentFilePath = basePath + '/apex_assessment.html';
32-
const rollbackFlagsReportPath = basePath + '/rollback_flags_report.html';
3332
// TODO: Uncomment code once MVP for migration is completed
3433
// const lwcAssessmentFilePath = basePath + '/lwc_assessment.html';
3534
const orgDetails: ReportHeaderFormat[] = this.formattedOrgDetails(omnistudioOrgDetails);
3635

36+
<<<<<<< HEAD
3737
if (!assessOnly) {
3838
this.createDocument(
3939
omniscriptAssessmentFilePath,
4040
OSAssessmentReporter.generateOSAssesment(result.omniAssessmentInfo.osAssessmentInfos, instanceUrl, orgDetails)
4141
);
42+
=======
43+
this.createDocument(
44+
omniscriptAssessmentFilePath,
45+
OSAssessmentReporter.generateOSAssesment(
46+
result.omniAssessmentInfo.osAssessmentInfos,
47+
instanceUrl,
48+
orgDetails,
49+
omnistudioOrgDetails.rollbackFlags
50+
)
51+
);
52+
this.createDocument(
53+
flexcardAssessmentFilePath,
54+
this.generateCardAssesment(result.flexCardAssessmentInfos, instanceUrl)
55+
);
56+
this.createDocument(
57+
integrationProcedureAssessmentFilePath,
58+
IPAssessmentReporter.generateIPAssesment(result.omniAssessmentInfo.ipAssessmentInfos, instanceUrl, orgDetails, omnistudioOrgDetails.rollbackFlags)
59+
);
60+
this.createDocument(
61+
dataMapperAssessmentFilePath,
62+
DRAssessmentReporter.generateDRAssesment(result.dataRaptorAssessmentInfos, instanceUrl, orgDetails, omnistudioOrgDetails.rollbackFlags)
63+
);
64+
>>>>>>> 451bd60 (Comments addressed)
4265

4366
this.createDocument(
4467
flexcardAssessmentFilePath,
@@ -146,6 +169,7 @@ export class AssessmentReporter {
146169
// location: 'lwc_assessment.html',
147170
// },
148171
];
172+
<<<<<<< HEAD
149173
// Check rollback flags
150174
const enabledFlags = omnistudioOrgDetails.rollbackFlags || [];
151175
if (enabledFlags.length > 0) {
@@ -156,6 +180,8 @@ export class AssessmentReporter {
156180
location: 'rollback_flags_report.html',
157181
});
158182
}
183+
=======
184+
>>>>>>> 451bd60 (Comments addressed)
159185

160186
await this.createMasterDocument(nameUrls, basePath);
161187
pushAssestUtilites('javascripts', basePath);
@@ -300,23 +326,4 @@ export class AssessmentReporter {
300326
</div>`;
301327
return tableBody;
302328
}
303-
private static generateRollbackFlagsReport(enabledFlags: string[]): string {
304-
return `
305-
<div class="slds-box rollback-flags-warning">
306-
<div class="slds-text-heading_medium">
307-
<svg class="slds-icon slds-icon_small slds-m-right_x-small" aria-hidden="true">
308-
<use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#warning"></use>
309-
</svg>
310-
Warning: Rollback Flags Enabled
311-
</div>
312-
<p>The following rollback flags are currently enabled and will be disabled during migration:</p>
313-
<ul>
314-
${enabledFlags.map((flag) => `<li>${flag}</li>`).join('')}
315-
</ul>
316-
<p>
317-
<strong>Note:</strong> These flags will not be supported after migration. For assistance, please contact support.
318-
</p>
319-
</div>
320-
`;
321-
}
322329
}

src/utils/resultsbuilder/index.ts

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import fs from 'fs';
22
import open from 'open';
3+
<<<<<<< HEAD
34
import { Logger } from '@salesforce/core';
45
import { pushAssestUtilites } from '../file/fileUtil';
56
import { ApexAssessmentInfo, MigratedObject, MigratedRecordInfo, RelatedObjectAssesmentInfo } from '../interfaces';
@@ -25,6 +26,10 @@ const apexConstants = { componentName: 'apex', title: 'Apex Classes Migration Re
2526
// const lwcConstants = { componentName: 'lwc', title: 'LWC Components Migration Result' };
2627
const migrationResultCSSfileName = 'reportGenerator.css';
2728
const migrationReportHTMLfileName = 'migration_report.html';
29+
=======
30+
import { ApexAssessmentInfo, LWCAssessmentInfo, MigratedObject, RelatedObjectAssesmentInfo } from '../interfaces';
31+
import { OmnistudioOrgDetails } from '../orgUtils';
32+
>>>>>>> 451bd60 (Comments addressed)
2833

2934
export class ResultsBuilder {
3035
private static logger: Logger = new Logger('ResultsBuilder');
@@ -33,7 +38,11 @@ export class ResultsBuilder {
3338
results: MigratedObject[],
3439
relatedObjectMigrationResult: RelatedObjectAssesmentInfo,
3540
instanceUrl: string,
41+
<<<<<<< HEAD
3642
orgDetails: OmnistudioOrgDetails
43+
=======
44+
omnistudioOrgDetails: OmnistudioOrgDetails
45+
>>>>>>> 451bd60 (Comments addressed)
3746
): Promise<void> {
3847
this.logger.info('Generating directories');
3948
fs.mkdirSync(resultsDir, { recursive: true });
@@ -66,6 +75,7 @@ export class ResultsBuilder {
6675
const details: ComponentDetail[] = [];
6776

6877
for (const result of results) {
78+
<<<<<<< HEAD
6979
const resultConstants = this.getResultConstant(result.name);
7080
details.push({
7181
name: resultConstants.componentName,
@@ -75,6 +85,57 @@ export class ResultsBuilder {
7585
error: result.data?.filter((record) => record.status === 'Error').length || 0,
7686
skip: result.data?.filter((record) => record.status === 'Skipped').length || 0,
7787
});
88+
=======
89+
htmlBody += '<br />' + this.generateResult(result, instanceUrl);
90+
}
91+
htmlBody += '<br />' + this.generateApexAssesment(relatedObjectMigrationResult.apexAssessmentInfos);
92+
// TODO: Uncomment code once MVP for migration is completed
93+
// htmlBody += '<br />' + this.generateLwcAssesment(relatedObjectMigrationResult.lwcAssessmentInfos);
94+
95+
// Add rollback flags report if there are any enabled flags
96+
const enabledFlags = omnistudioOrgDetails.rollbackFlags || [];
97+
if (enabledFlags.length > 0) {
98+
htmlBody += '<br />' + this.generateRollbackFlagsReport(enabledFlags);
99+
}
100+
101+
const doc = this.generateDocument(htmlBody);
102+
const fileUrl = process.cwd() + '/migrationresults.html';
103+
fs.writeFileSync(fileUrl, doc);
104+
await open('file://' + fileUrl);
105+
}
106+
107+
private static generateDocument(resultsAsHtml: string): string {
108+
const document = `
109+
<html>
110+
<head>
111+
<title>OmniStudio Migration Results</title>
112+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/design-system/2.17.5/styles/salesforce-lightning-design-system.min.css" />
113+
</head>
114+
<body>
115+
<div style="margin: 20px;">
116+
<div class="slds-text-heading_large">OmniStudio Migration Results</div>
117+
${resultsAsHtml}
118+
</div>
119+
</div>
120+
</body>
121+
</html>
122+
`;
123+
return document;
124+
}
125+
126+
private static generateResult(migrationResult: MigratedObject, instanceUrl: string): string {
127+
let errorsBody = '';
128+
let tableBody = '';
129+
130+
if (migrationResult.errors) {
131+
errorsBody = migrationResult.errors
132+
.map((e) => `<li class="slds-item slds-text-color_destructive">${e}</li>`)
133+
.join('');
134+
errorsBody = `
135+
<div style="margin-block: 15px">
136+
<ul class="slds-list_dotted">${errorsBody}</ul>
137+
</div>`;
138+
>>>>>>> 451bd60 (Comments addressed)
78139
}
79140

80141
details.push({
@@ -348,6 +409,7 @@ export class ResultsBuilder {
348409
// this.generateReportForLwcResult(result.lwcAssessmentInfos, instanceUrl, orgDetails);
349410
}
350411
412+
<<<<<<< HEAD
351413
private static generateReportForApexResult(
352414
result: ApexAssessmentInfo[],
353415
instanceUrl: string,
@@ -526,4 +588,21 @@ export class ResultsBuilder {
526588
// </html>`;
527589
// fs.writeFileSync(resultsDir + '/' + lwcConstants.componentName + '.html', html);
528590
// }
591+
=======
592+
private static generateRollbackFlagsReport(enabledFlags: string[]): string {
593+
return `
594+
<div class="slds-box" style="background-color: white">
595+
<div class="slds-text-heading_medium">Rollback Flags Disabled</div>
596+
<div style="margin-block: 15px">
597+
<p>The following rollback flags were disabled during migration:</p>
598+
<ul class="slds-list_dotted">
599+
${enabledFlags.map((flag) => `<li class="slds-item slds-text-color_destructive">${flag}</li>`).join('')}
600+
</ul>
601+
<p>
602+
<strong>Note:</strong> These flags are no longer supported after migration. For assistance, please contact support.
603+
</p>
604+
</div>
605+
</div>`;
606+
}
607+
>>>>>>> 451bd60 (Comments addressed)
529608
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expect } from '@salesforce/command/lib/test';
22
import { Connection } from '@salesforce/core';
33
import sinon = require('sinon');
4-
import { OrgPreferences } from '../../src/utils/orgpreferences';
4+
import { OrgPreferences } from '../../src/utils/orgPreferences';
55

66
describe('OrgPreferences', () => {
77
let connection: Connection;

0 commit comments

Comments
 (0)