export async function DELETE()

in src/app/api/v1/admin/qa-customs/hibp/route.ts [157:197]


export async function DELETE(req: NextRequest) {
  const err = await checkAdmin();
  if (err) return err;

  const prodErr = errorIfProduction();
  if (prodErr !== null) return prodErr;

  const emailHashFull = req.nextUrl.searchParams.get("emailHashFull");
  const breachId = Number(req.nextUrl.searchParams.get("breachId"));

  if (!emailHashFull || !breachId || Number.isNaN(breachId)) {
    return NextResponse.json(
      { error: "Missing or invalid emailHashPrefix or id parameter" },
      { status: 400 },
    );
  }

  const subscriberRows = await getSubscribersByHashes([emailHashFull]);
  for (const row of subscriberRows) {
    const breachResolutionBefore = row.breach_resolution;
    const breachResolutionAfter = getObjWithRemovedBreach(
      breachResolutionBefore,
      String(breachId),
    );
    const updateRes = await setBreachResolution(row, breachResolutionAfter);
    if (!updateRes) {
      logger.warn(
        "QA custom breach_resolution was not updated, 'setBreachResolution' returned undefined",
      );
    }
  }

  try {
    const emailHashPrefix = emailHashFull.slice(0, 6);
    await deleteQaCustomBreach(emailHashPrefix, breachId);
    return successResponse();
  } catch (error) {
    console.error("Error deleting custom breach:", error);
    return internalServerError();
  }
}