import { exec } from "../exec";

type Payload = {
  host: string;
  user: string;
  password: string;
  outputDir: string;
};

export async function backupAllDatabases(jobId: number, payload: Payload) {
  if (!/^[a-zA-Z0-9._-]+$/.test(payload.host)) throw new Error("Invalid host");
  if (!/^[a-zA-Z0-9_-]+$/.test(payload.user)) throw new Error("Invalid user");
  if (!/^[a-zA-Z0-9/_-]+$/.test(payload.outputDir)) throw new Error("Invalid outputDir");

  const scriptPath = "/var/www/html/wordpress-manager-v2/scripts/backup-all-database.sh";

  await exec(jobId, "bash", [
    scriptPath,
    payload.host,
    payload.user,
    payload.password,
    payload.outputDir
  ]);
}
