community / src /core /deletePost.mts
jbilcke-hf's picture
jbilcke-hf HF staff
initial commit
b2d7d99
raw
history blame contribute delete
904 Bytes
import tmpDir from "temp-dir"
import { validate as uuidValidate } from "uuid"
import { postDirFilePath } from "../config.mts"
import { deleteFilesWithName } from "../utils/deleteAllFilesWith.mts"
// note: we make sure appId and postId are *VALID*
// otherwise an attacker could try to delete important files!
export const deletePost = async (appId: string, postId?: string) => {
if (!uuidValidate(appId)) {
throw new Error(`fatal error: appId ${appId} is invalid!`)
}
if (postId && !uuidValidate(postId)) {
throw new Error(`fatal error: postId ${postId} is invalid!`)
}
const id = postId ? `${appId}_${postId}` : appId
// this should delete everything, including audio files
// however we still have some temporary files with a name that is unique:
// we should probably rename those
await deleteFilesWithName(tmpDir, id)
await deleteFilesWithName(postDirFilePath, id)
}