import { Request, Response } from "express"; import fs from "fs-extra"; import path from "path"; import { logger } from "../server"; import GenerateThumbnail from "../util/generateThumbnail"; import MediaFile from "../util/interfaces/MediaFile"; import ListableChecker from "../util/listableChecker"; import GenerateUrl from "../util/MediaUrlGen"; import { PathToRoFolder } from "../util/pathGenerators"; import { FolderPaths, JobRelativeFilePath } from "../util/serverInit"; import ft from "file-type"; import core from "file-type/core"; export async function JobsDeleteMedia(req: Request, res: Response) { const jobid: string = (req.body.jobid || "").trim(); const files: string[] = req.body.files || []; await fs.ensureDir(PathToRoFolder(jobid)); logger.debug("Deleteing media for job: " + PathToRoFolder(jobid)); let ret: MediaFile[]; try { //We just uploaded files, we're going to send only those back. await Promise.all( files.map(async (filename) => { const relativeFilePath: string = JobRelativeFilePath(jobid, filename); await fs.remove(relativeFilePath); }) ); if (!res.headersSent) res.sendStatus(200); } catch (error) { logger.error("Error deleting job media.", { jobid, error }); if (!res.headersSent) res.status(500).json(error); } }