saleor-apps-redis_apl/apps/emails-and-messages/scripts/migrations/run-report.ts

98 lines
2.9 KiB
TypeScript
Raw Normal View History

/* eslint-disable turbo/no-undeclared-env-vars */
import * as dotenv from "dotenv";
import { fetchCloudAplEnvs, getMetadataManagerForEnv, verifyRequiredEnvs } from "./migration-utils";
import { AppConfigPrivateMetadataManager } from "../../src/modules/app-configuration/app-config-metadata-manager";
import { SendgridPrivateMetadataManagerV1 } from "../../src/modules/sendgrid/configuration/sendgrid-metadata-manager-v1";
import { MjmlPrivateMetadataManager } from "../../src/modules/smtp/configuration/mjml-metadata-manager";
import { smtpTransformV1toV2 } from "../../src/modules/smtp/configuration/migrations/smtp-transform-v1-to-v2";
import { sendgridTransformV1toV2 } from "../../src/modules/sendgrid/configuration/migrations/sendgrid-transform-v1-to-v2";
dotenv.config();
const runReport = async () => {
console.log("Starting running report");
verifyRequiredEnvs();
console.log("Envs verified, fetching envs");
const allEnvs = await fetchCloudAplEnvs().catch((r) => {
console.error(r);
process.exit(1);
});
const report = {
smtp: [] as string[],
sendgrid: [] as string[],
none: [] as string[],
};
for (const env of allEnvs) {
console.log("Working on env: ", env.saleorApiUrl);
let isSmtpMigrated = false;
let isSendgridMigrated = false;
const metadataManager = getMetadataManagerForEnv(env.saleorApiUrl, env.token, env.appId);
const sendgridMetadataManagerV1 = new SendgridPrivateMetadataManagerV1(
metadataManager,
env.saleorApiUrl
);
const appMetadataManager = new AppConfigPrivateMetadataManager(
metadataManager,
env.saleorApiUrl
);
const appConfiguration = await appMetadataManager.getConfig();
const sendgridConfigurationV1 = await sendgridMetadataManagerV1.getConfig();
if (sendgridConfigurationV1) {
console.log("Found old sendgrid config, migrating");
isSendgridMigrated = true;
const v2 = sendgridTransformV1toV2({
configV1: sendgridConfigurationV1,
appConfigV1: appConfiguration,
});
console.log("Old config", sendgridConfigurationV1);
console.log("New config", v2);
}
const mjmlMetadataManagerV1 = new MjmlPrivateMetadataManager(metadataManager, env.saleorApiUrl);
const mjmlConfiguration = await mjmlMetadataManagerV1.getConfig();
if (mjmlConfiguration) {
console.log("Found old mjml config, migrating");
isSmtpMigrated = true;
const v2 = smtpTransformV1toV2({
configV1: mjmlConfiguration,
appConfigV1: appConfiguration,
});
console.log("Old config", mjmlConfiguration);
console.log("New config", v2);
}
if (isSendgridMigrated) {
report.sendgrid.push(env.saleorApiUrl);
}
if (isSmtpMigrated) {
report.smtp.push(env.saleorApiUrl);
}
if (!isSmtpMigrated && !isSendgridMigrated) {
report.none.push(env.saleorApiUrl);
}
}
console.log("Report", report);
};
runReport();