Changeset 226fbbb for pages/dashboard


Ignore:
Timestamp:
12/23/25 04:21:42 (7 months ago)
Author:
Tome <gjorgievtome@…>
Branches:
main
Children:
ea09e98
Parents:
ee1fa4e
Message:

Update telefunctions

Location:
pages/dashboard
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pages/dashboard/admin/adminDashboard.telefunc.ts

    ree1fa4e r226fbbb  
    22import { requireAdmin } from "../../../server/telefunc/ctx";
    33import {Abort} from "telefunc";
     4import { validateComponentSpecificData } from "../../../database/drizzle/config/componentFieldConfig";
    45
    56export async function getAdminInfoAndData() {
     
    2223}
    2324
    24 export async function setPopupBuildApprovalStatus({ buildId, isApproved }
     25export async function onSetBuildApprovalStatus({ buildId, isApproved }
    2526                                                 : { buildId: number; isApproved: boolean }) {
    2627    const { c, userId } = await requireAdmin()
     
    3536}
    3637
    37 export async function setComponentSuggestionStatus({ suggestionId, status, adminComment }
     38export async function onSetComponentSuggestionStatus({ suggestionId, status, adminComment }
    3839                                                : { suggestionId: number; status: string; adminComment: string }) {
    3940    const { c, userId } = await requireAdmin()
     
    4849    return { success: true };
    4950}
     51
     52export async function onCreateNewComponent({ name, brand, price, imgUrl, type, specificData }
     53                                            : { name: string; brand: string; price: number; imgUrl: string; type: string, specificData: any }) {
     54
     55    const { c, userId } = await requireAdmin()
     56
     57    if(!validateComponentSpecificData(type, specificData)) throw Abort();
     58
     59    const newComponentId = await drizzleQueries.addNewComponent(c.db, name, brand, price, imgUrl, type, specificData);
     60
     61    if(!newComponentId) throw Abort();
     62
     63    return newComponentId;
     64}
  • pages/dashboard/user/userDashboard.telefunc.ts

    ree1fa4e r226fbbb  
    11import * as drizzleQueries from "../../../database/drizzle/queries";
    22import {requireUser} from "../../../server/telefunc/ctx";
     3import {Abort} from "telefunc";
    34
    45export async function getUserInfoAndData() {
     
    1819    };
    1920}
     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    return { success: true };
     31}
     32
     33export async function onEditBuild({ buildId }
     34                                  : { buildId: number }) {
     35    const { c, userId } = requireUser()
     36
     37    if(!Number.isInteger(buildId) || buildId <= 0) throw Abort();
     38
     39    const buildDetails = await drizzleQueries.getBuildDetails(c.db, buildId, userId);
     40
     41    if(!buildDetails) throw Abort();
     42
     43    return buildDetails;
     44}
     45
     46export async function onSaveEditBuild({ buildId, name, description, componentIds }
     47                                      : { buildId: number; name: string; description: string; componentIds: number[] }) {
     48    const { c, userId } = requireUser()
     49
     50    if (!Number.isInteger(buildId) || buildId <= 0) throw Abort();
     51
     52    const result = await drizzleQueries.editBuild(c.db, userId, buildId, name, description, componentIds);
     53
     54    if(!result) throw Abort();
     55
     56    return { success: true };
     57}
Note: See TracChangeset for help on using the changeset viewer.