Changeset e7f1bfa for pages


Ignore:
Timestamp:
12/25/25 03:39:56 (7 months ago)
Author:
Tome <gjorgievtome@…>
Branches:
main
Children:
898cf68
Parents:
83fb5e2
Message:

implement forge features

Location:
pages
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pages/+Layout.telefunc.ts

    r83fb5e2 re7f1bfa  
    4040    return approvedBuilds;
    4141}
    42 
    43 // Shared
    4442
    4543export async function onGetComponentDetails({ componentId }
  • pages/forge/forge.telefunc.ts

    r83fb5e2 re7f1bfa  
    33import {Abort} from "telefunc";
    44import type {Database} from "../../database/drizzle/db";
     5import {removeComponentFromBuild} from "../../database/drizzle/queries";
    56
    67export async function onSaveNewBuild({ name, description, componentIds }
     
    1415    return { success: true };
    1516}
     17
     18export async function onRemoveComponentFromBuild({ buildId, componentId }
     19                                                 : { buildId: number, componentId: number }) {
     20    const { c, userId } = requireUser()
     21
     22    const result = await drizzleQueries.removeComponentFromBuild(c.db, buildId, componentId);
     23
     24    if(!result) throw Abort();
     25
     26    return { success: true };
     27}
     28
     29export async function onDeleteBuild({ buildId }: { buildId: number }) {
     30    const { c, userId } = requireUser()
     31
     32    const result = await drizzleQueries.deleteBuild(c.db, userId, buildId);
     33    if(!result) throw Abort();
     34
     35    return { success: true };
     36}
     37
     38export async function onGetBuildComponents({ buildId }
     39                                           : { buildId: number }) {
     40    const { c, userId } = requireUser()
     41
     42    if(!Number.isInteger(buildId) || buildId <= 0) throw Abort();
     43
     44    const buildComponents = await drizzleQueries.getBuildComponents(c.db, buildId);
     45
     46    if(!buildComponents) throw Abort();
     47
     48    return buildComponents;
     49}
     50
     51export async function onAddComponentToBuild({ buildId, componentId }: { buildId: number, componentId: number }) {
     52    const { c, userId } = requireUser()
     53
     54    if(!Number.isInteger(buildId) || buildId <= 0) throw Abort();
     55    if(!Number.isInteger(componentId) || componentId <= 0) throw Abort();
     56
     57    const result = await drizzleQueries.addComponentToBuild(c.db, buildId, componentId);
     58
     59    if(!result) throw Abort();
     60
     61    return { success: true };
     62}
     63
     64export async function onGetCompatibleComponents({ buildId, componentType }: { buildId: number, componentType: string }) {
     65    const { c, userId } = requireUser()
     66
     67    if(!Number.isInteger(buildId) || buildId <= 0) throw Abort();
     68
     69    const compatibleComponents = await drizzleQueries.getCompatibleComponents(c.db, buildId, componentType);
     70
     71    if(!compatibleComponents) throw Abort();
     72
     73    return compatibleComponents;
     74}
Note: See TracChangeset for help on using the changeset viewer.