source: pages/dashboard/user/userDashboard.telefunc.ts@ e7f1bfa

main
Last change on this file since e7f1bfa was 83fb5e2, checked in by Tome <gjorgievtome@…>, 7 months ago

fix returns and add checks

  • Property mode set to 100644
File size: 1.8 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 userBuilds,
18 favoriteBuilds
19 };
20}
21
22export async function onDeleteBuild({ buildId }
23 : { buildId: number }) {
24 const { c, userId } = requireUser()
25
26 if (!Number.isInteger(buildId) || buildId <= 0) throw Abort();
27
28 const result = await drizzleQueries.deleteBuild(c.db, userId, buildId);
29
30 if(!result) throw Abort();
31
32 return { success: true };
33}
34
35export async function onEditBuild({ buildId }
36 : { buildId: number }) {
37 const { c, userId } = requireUser()
38
39 if(!Number.isInteger(buildId) || buildId <= 0) throw Abort();
40
41 const buildDetails = await drizzleQueries.getBuildDetails(c.db, buildId, userId);
42
43 if(!buildDetails) throw Abort();
44
45 return buildDetails;
46}
47
48export async function onSaveEditBuild({ buildId, name, description, componentIds }
49 : { buildId: number; name: string; description: string; componentIds: number[] }) {
50 const { c, userId } = requireUser()
51
52 if (!Number.isInteger(buildId) || buildId <= 0) throw Abort();
53
54 const result = await drizzleQueries.editBuild(c.db, userId, buildId, name, description, componentIds);
55
56 if(!result) throw Abort();
57
58 return { success: true };
59}
Note: See TracBrowser for help on using the repository browser.