import { Elysia } from "elysia"; import { BaseHtml } from "../components/base"; import { Header } from "../components/header"; import db from "../db/db"; import { Filename, Jobs } from "../db/types"; import { ALLOW_UNAUTHENTICATED, HIDE_HISTORY, LANGUAGE, WEBROOT } from "../helpers/env"; import { userService } from "./user"; export const history = new Elysia().use(userService).get( "/history", async ({ redirect, user }) => { if (HIDE_HISTORY) { return redirect(`${WEBROOT}/`, 302); } if (!user) { return redirect(`${WEBROOT}/login`, 302); } let userJobs = db.query("SELECT * FROM jobs WHERE user_id = ?").as(Jobs).all(user.id).reverse(); for (const job of userJobs) { const files = db.query("SELECT * FROM file_names WHERE job_id = ?").as(Filename).all(job.id); job.finished_files = files.length; job.files_detailed = files; } // Filter out jobs with no files userJobs = userJobs.filter((job) => job.num_files > 0); return ( <>

Results

{userJobs.map((job) => ( <> ))}
Expand details Time Files Files Done Status View
{new Date(job.date_created).toLocaleTimeString(LANGUAGE)} {job.num_files} {job.finished_files} {job.status} View
); }, { auth: true, }, );