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

77 lines
2.1 KiB
TypeScript
Raw Permalink Normal View History

/* eslint-disable turbo/no-undeclared-env-vars */
import * as dotenv from "dotenv";
import { fetchCloudAplEnvs, getMetadataManagerForEnv, verifyRequiredEnvs } from "./migration-utils";
import { SendgridPrivateMetadataManager } from "../../src/modules/sendgrid/configuration/sendgrid-metadata-manager";
import { SmtpPrivateMetadataManager } from "../../src/modules/smtp/configuration/smtp-metadata-manager";
dotenv.config();
const runMigration = async () => {
console.log("Starting running migration");
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) {
let isSmtpMigrated = false;
let isSendgridMigrated = false;
console.log("Working on env: ", env.saleorApiUrl);
const metadataManager = getMetadataManagerForEnv(env.saleorApiUrl, env.token, env.appId);
const sendgridMetadataManager = new SendgridPrivateMetadataManager(
metadataManager,
env.saleorApiUrl
);
const sendgridUpdatedSchema = await sendgridMetadataManager.getConfig();
if (sendgridUpdatedSchema) {
console.log("Migrated sendgrid configuration found, overriding");
isSendgridMigrated = true;
await sendgridMetadataManager.setConfig(sendgridUpdatedSchema);
}
const smtpMetadataManager = new SmtpPrivateMetadataManager(metadataManager, env.saleorApiUrl);
const smtpUpdatedSchema = await smtpMetadataManager.getConfig();
if (smtpUpdatedSchema) {
console.log("Migrated smtp configuration found, overriding");
isSmtpMigrated = true;
await smtpMetadataManager.setConfig(smtpUpdatedSchema);
}
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);
};
runMigration();