Changes in / [f46bf5c:b6e1b3c]


Ignore:
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • database/drizzle/queries/components.ts

    rf46bf5c rb6e1b3c  
    1212} from "../schema";
    1313import {and, asc, desc, eq, ilike, SQL, sql} from "drizzle-orm";
    14 import {typeConfigMap, ComponentType, requiredFields} from "../util/componentFieldConfig";
     14import {typeConfigMap, ComponentType} from "../util/componentFieldConfig";
    1515import {AnyPgColumn} from "drizzle-orm/pg-core";
    1616import {inArray} from "drizzle-orm/sql/expressions/conditions";
     
    101101        ...component,
    102102        details: details
    103     };
    104 }
    105 
    106 export async function getDetailsForNewComponent(componentType: string) {
    107     const config = typeConfigMap[componentType as ComponentType];
    108 
    109     return {
    110         type: componentType as ComponentType,
    111         requiredFields: requiredFields[componentType as ComponentType] ?? [],
    112         multiTables: config.multiTables ?? {},
    113103    };
    114104}
  • database/drizzle/util/componentFieldConfig.ts

    rf46bf5c rb6e1b3c  
    108108    return true;
    109109}
     110
     111export function getValidationError(type: string, specificData: any): string | null {
     112    if (!(type in requiredFields)) {
     113        return `Invalid component type: ${type}`;
     114    }
     115
     116    const fields = requiredFields[type as ComponentType];
     117    const missingFields: string[] = [];
     118
     119    for (const field of fields) {
     120        const value = specificData[field];
     121        if (value === undefined || value === null || value === '') {
     122            missingFields.push(field);
     123        }
     124    }
     125
     126    if (missingFields.length > 0) {
     127        return `Missing required fields: ${missingFields.join(', ')}`;
     128    }
     129
     130    return null;
     131}
  • pages/dashboard/admin/adminDashboard.telefunc.ts

    rf46bf5c rb6e1b3c  
    6363    return { success: true };
    6464}
    65 
    66 export async function onGetDetailsForNewComponent({ type }
    67                                                   : { type: string }) {
    68     const { c, userId } = await requireAdmin()
    69 
    70     const details = await drizzleQueries.getDetailsForNewComponent(type);
    71 
    72     return details;
    73 }
Note: See TracChangeset for help on using the changeset viewer.