source: pages/dashboard/user/userDashboard.telefunc.ts@ 8fe7f1a

main
Last change on this file since 8fe7f1a was 8fe7f1a, checked in by Tome <gjorgievtome@…>, 6 months ago

Refactor queries and telefunctions

  • Property mode set to 100644
File size: 1.3 KB
Line 
1import * as drizzleQueries from "../../../database/drizzle/queries";
2import {requireUser} from "../../../server/telefunc/ctx";
3import {Abort} from "telefunc";
4
5export async function getUserInfoAndData() {
6 const { c, userId } = requireUser()
7
8 const user = await drizzleQueries.getUserProfile(c.db, userId);
9
10 if (!user) throw new Error();
11
12 const userBuilds = await drizzleQueries.getUserBuilds(c.db, userId);
13 const favoriteBuilds = await drizzleQueries.getFavoriteBuilds(c.db, userId);
14
15 return {
16 user: {
17 ...user,
18 id: userId,
19 },
20 userBuilds,
21 favoriteBuilds
22 };
23}
24
25export async function onDeleteBuild({ buildId }
26 : { buildId: number }) {
27 const { c, userId } = requireUser()
28
29 if (!Number.isInteger(buildId) || buildId <= 0) throw Abort();
30
31 const result = await drizzleQueries.deleteBuild(c.db, userId, buildId);
32
33 if(!result) throw Abort();
34
35 return { success: true };
36}
37
38export async function onEditBuild({ buildId }
39 : { buildId: number }) {
40 const { c, userId } = requireUser()
41
42 if(!Number.isInteger(buildId) || buildId <= 0) throw Abort();
43
44 const buildDetails = await drizzleQueries.getBuildDetails(c.db, buildId, userId);
45
46 if(!buildDetails) throw Abort();
47
48 return buildDetails;
49}
Note: See TracBrowser for help on using the repository browser.