brackt/app/lib/sport-icon-cleanup.server.ts
2026-05-08 21:19:09 -07:00

28 lines
798 B
TypeScript

import { deleteCloudinaryImageByUrl } from "~/lib/cloudinary.server";
import { logger } from "~/lib/logger";
import { isSportIconUrlUsed } from "~/models/sport";
interface DeleteSportIconIfUnusedArgs {
iconUrl: string;
excludeSportId?: string;
reason: "replaced" | "unused";
}
export async function deleteSportIconIfUnused({
iconUrl,
excludeSportId,
reason,
}: DeleteSportIconIfUnusedArgs): Promise<void> {
try {
if (await isSportIconUrlUsed(iconUrl, excludeSportId)) {
return;
}
} catch (error) {
logger.error("Failed to check whether sport icon is reused; skipping Cloudinary cleanup:", error);
return;
}
deleteCloudinaryImageByUrl(iconUrl).catch((error) => {
logger.error(`Failed to delete ${reason} sport icon from Cloudinary:`, error);
});
}