import dbClient from 'db/client.ts';
interface Plan {
id: string;
name: string;
folder: string;
}
const makePlanButtons = (planId: string, deleted: boolean) =>
deleted
? ``
: ``;
const makePlanItem = (plan: Plan, deleted: boolean) => `
${plan.folder}${plan.folder && '/'}${plan.name} - ${makePlanButtons(plan.id, deleted)}`;
export default async (userId: string, userName: string) => {
let failed = false;
const plans: Plan[] = await dbClient
.query('SELECT id, name, folder FROM plans WHERE ownerId = ? AND deleted = 0 GROUP BY folder,name,id ORDER BY folder,name DESC', [userId])
.catch((e) => {
console.error(e);
failed = true;
});
if (failed) return "Couldn't read DB.";
const deletedPlans: Plan[] = await dbClient
.query('SELECT id, name, folder FROM plans WHERE ownerId = ? AND deleted = 1 GROUP BY folder,name,id ORDER BY folder,name DESC', [userId])
.catch(() => {
failed = true;
});
if (failed) return "Couldn't read DB.";
return `
${userName}'s Plans:
${plans.map((plan) => makePlanItem(plan, false)).join('')}
${userName}'s Deleted Plans:
${deletedPlans.map((plan) => makePlanItem(plan, true)).join('')}
`;
};