import useDatabase from '~/composables/useDatabase'; import { ProjectSearch } from '~/types/api'; export default defineEventHandler(async (e) => { const query = getQuery(e); const where = ["f.type != $type"]; const criteria: Record = { $type: "Folder" }; if(query && query.owner !== undefined) { where.push("owner = $owner"); criteria["$owner"] = query.owner; } if(query && query.name !== undefined) { where.push("name = $name"); criteria["$name"] = query.name; } const db = useDatabase(); const content = db.query(`SELECT p.*, u.username, COUNT(f.path) as pages FROM explorer_projects p LEFT JOIN users u ON p.owner = u.id LEFT JOIN explorer_files f ON f.project = p.id WHERE ${where.join(" AND ")} GROUP BY p.id`).all(criteria) as ProjectSearch[]; if(content.length > 0) { return content; } setResponseStatus(e, 404); });