rework delete function
This commit is contained in:
parent
52b1aeea98
commit
f83c5aa423
2 changed files with 35 additions and 30 deletions
|
@ -13,7 +13,7 @@ ffmpeg.setFfprobePath(ffprobepath.path);
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
|
||||||
import {extension} from "../types/lib";
|
import {extension} from "../types/lib";
|
||||||
import {db, MediaRow} from "../types/db";
|
import {db, MediaRow, getPath, deleteId} from "../types/db";
|
||||||
import {fileStorage, fileFilter} from "../types/multer";
|
import {fileStorage, fileFilter} from "../types/multer";
|
||||||
import {checkAuth, checkSharexAuth, createEmbedData, handleUpload} from "./middleware";
|
import {checkAuth, checkSharexAuth, createEmbedData, handleUpload} from "./middleware";
|
||||||
|
|
||||||
|
@ -80,35 +80,19 @@ router.post("/sharex", [checkSharexAuth, upload.single("fileupload"), createEmbe
|
||||||
return res.send(`${req.protocol}://${req.get("host")}/uploads/${req.file.filename}`);
|
return res.send(`${req.protocol}://${req.get("host")}/uploads/${req.file.filename}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post("/:id(\\d+)/delete", [checkAuth], (req: Request, res: Response, next: NextFunction) => {
|
router.post("/:id(\\d+)/delete", [checkAuth], async (req: Request, res: Response, next: NextFunction) => {
|
||||||
db.all("SELECT path FROM media WHERE id = ?", [ req.params.id ], (err: Error, path: Array<any>) => {
|
const path: any = await getPath(req.params.id)
|
||||||
if (err) { return next(err); }
|
fs.unlink(`uploads/${path.path}`, async (err) => {
|
||||||
fs.unlink(`uploads/${path[0].path}`, (err => {
|
if (err && err.errno == -4058) {
|
||||||
if (err) {
|
await deleteId("media", req.params.id).then(()=> {
|
||||||
console.log(err);
|
|
||||||
if (err.errno == -4058) { //File just doesnt exist anymore
|
|
||||||
db.run("DELETE FROM media WHERE id = ?", [
|
|
||||||
req.params.id
|
|
||||||
], (err: Error) => {
|
|
||||||
if (err) { return next(err); }
|
|
||||||
return res.redirect("/");
|
return res.redirect("/");
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
console.log(err);
|
await deleteId("media", req.params.id).then(()=> {
|
||||||
return res.redirect("/");
|
return res.redirect("/");
|
||||||
|
})
|
||||||
}
|
}
|
||||||
} else {
|
})
|
||||||
console.log(`Deleted ${path}`);
|
|
||||||
//Callback Hell :D
|
|
||||||
db.run("DELETE FROM media WHERE id = ?", [
|
|
||||||
req.params.id
|
|
||||||
], (err: Error) => {
|
|
||||||
if (err) { return next(err); }
|
|
||||||
return res.redirect("/");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
|
@ -1,6 +1,7 @@
|
||||||
import sqlite3 from "sqlite3";
|
import sqlite3 from "sqlite3";
|
||||||
import mkdirp from "mkdirp";
|
import mkdirp from "mkdirp";
|
||||||
import crypto from "crypto";
|
import crypto from "crypto";
|
||||||
|
import { FileFilterCallback } from "multer";
|
||||||
|
|
||||||
mkdirp.sync("./uploads");
|
mkdirp.sync("./uploads");
|
||||||
mkdirp.sync("./var/db");
|
mkdirp.sync("./var/db");
|
||||||
|
@ -16,6 +17,26 @@ export function createUser(username: string, password: string) {
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getPath(id: number | string) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let query: string = `SELECT path FROM media WHERE id = ?`;
|
||||||
|
db.get(query, [id], (err: Error, path: object) => {
|
||||||
|
if (err) {reject(err)}
|
||||||
|
resolve(path)
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteId(database: string, id: number | string) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let query: string = `DELETE FROM ${database} WHERE id = ?`
|
||||||
|
db.run(query, [id], (err: Error) => {
|
||||||
|
if (err) {reject(err); return;}
|
||||||
|
resolve(null)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export interface MediaRow {
|
export interface MediaRow {
|
||||||
id? : Number,
|
id? : Number,
|
||||||
path: String,
|
path: String,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue