"use server";

import { ServerResponse } from "@/lib/actions";
import { rm } from "fs/promises";
import { ResultSetHeader } from "mysql2";
import { ServerAction } from "@/lib/actions";

export const removeDownloadLinks = async (formData: FormData) => {
  const { error, con, dict } = await ServerAction();

  if (error) {
    return ServerResponse({
      operation: false,
      data: error,
    });
  }

  const id = formData.get("id");

  try {
    const path = `public/tmp/${id}`;

    await rm(path, { recursive: true, force: true });

    const [result] = await con.query<ResultSetHeader>(
      `UPDATE DOWNLOADLINKS SET EXPIRED = 1 WHERE ID = ?`,
      [id],
    );

    return ServerResponse({
      operation: true,
      message: dict.alerts.remove_download_link.success,
    });
  } catch (error) {
    return ServerResponse({
      operation: false,
      message: dict.alerts.general.unexpected_error,
      data: error,
    });
  } finally {
    con.release();
  }
};
