Jobs Media List functional

This commit is contained in:
Patrick Fic
2022-04-28 19:30:49 -07:00
parent 295e4deeb2
commit 9962ce0baf
11 changed files with 4116 additions and 4624 deletions

55
jobs/jobsListMedia.ts Normal file
View File

@@ -0,0 +1,55 @@
import { Request, Response } from "express";
import fs from "fs-extra";
import path from "path";
import GenerateThumbnail from "../util/generateThumbnail";
import GenerateUrl from "../util/MediaUrlGen";
import { FolderPaths } from "../util/serverInit";
export async function JobsListMedia(req: Request, res: Response) {
const ro_number: string = (req.body.ro_number || "").trim();
const filesList: fs.Dirent[] = (
await fs.readdir(path.join(FolderPaths.Jobs, ro_number), {
withFileTypes: true,
})
).filter((f) => f.isFile() && !/(^|\/)\.[^\/\.]/g.test(f.name));
const thumbnailGenerationQueue: Promise<void>[] = [];
const ret: MediaFile[] = filesList.map((file) => {
thumbnailGenerationQueue.push(
GenerateThumbnail(
path.join(FolderPaths.Jobs, ro_number, file.name),
path.join(
FolderPaths.Jobs,
ro_number,
FolderPaths.ThumbsSubDir,
file.name
)
)
);
return {
src: GenerateUrl([
FolderPaths.StaticPath,
FolderPaths.JobsFolder,
ro_number,
file.name,
]),
thumb: GenerateUrl([
FolderPaths.StaticPath,
FolderPaths.JobsFolder,
ro_number,
FolderPaths.ThumbsSubDir,
file.name,
]),
};
});
await Promise.all(thumbnailGenerationQueue);
res.json(ret);
}
interface MediaFile {
src: string;
thumb: string;
}