Add timelapse upload and display to image edit page
This commit is contained in:
@ -9,6 +9,7 @@ export async function deleteArtwork(artworkId: string) {
|
||||
where: { id: artworkId },
|
||||
include: {
|
||||
variants: true,
|
||||
timelapse: true,
|
||||
colors: true,
|
||||
metadata: true,
|
||||
tags: true,
|
||||
@ -32,6 +33,20 @@ export async function deleteArtwork(artworkId: string) {
|
||||
}
|
||||
}
|
||||
|
||||
// Delete timelapse S3 object (if present)
|
||||
if (artwork.timelapse?.s3Key) {
|
||||
try {
|
||||
await s3.send(
|
||||
new DeleteObjectCommand({
|
||||
Bucket: `${process.env.BUCKET_NAME}`,
|
||||
Key: artwork.timelapse.s3Key,
|
||||
})
|
||||
);
|
||||
} catch (err) {
|
||||
console.warn(`Failed to delete timelapse S3 object: ${artwork.timelapse.s3Key}. ${err}`);
|
||||
}
|
||||
}
|
||||
|
||||
// Step 1: Delete join entries
|
||||
await prisma.artworkColor.deleteMany({ where: { artworkId } });
|
||||
|
||||
@ -48,6 +63,9 @@ export async function deleteArtwork(artworkId: string) {
|
||||
// Delete variants
|
||||
await prisma.fileVariant.deleteMany({ where: { artworkId } });
|
||||
|
||||
// Delete timelapse DB row (relation also cascades, but be explicit)
|
||||
await prisma.artworkTimelapse.deleteMany({ where: { artworkId } });
|
||||
|
||||
// Delete metadata
|
||||
await prisma.artworkMetadata.deleteMany({ where: { artworkId } });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user