feat: enhance API response handling and add new components for module management
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
"./schema/*": "./src/schema/*.ts",
|
||||
"./hooks/*": "./src/hooks/*.ts",
|
||||
"./components": "./src/components/index.ts",
|
||||
"./actions/*": "./src/server/actions/*.ts",
|
||||
"./services/*": "./src/server/services/*.ts"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@@ -22,14 +22,14 @@ export const createModule = authActionClient
|
||||
'Creating module...',
|
||||
);
|
||||
|
||||
const module = await api.modules.createModule(input);
|
||||
const data = await api.modules.createModule(input);
|
||||
|
||||
logger.info(
|
||||
{ name: 'modules.create', moduleId: module.id },
|
||||
{ name: 'modules.create', moduleId: data.id },
|
||||
'Module created',
|
||||
);
|
||||
|
||||
return { success: true, module };
|
||||
return { success: true, data };
|
||||
});
|
||||
|
||||
export const updateModule = authActionClient
|
||||
@@ -44,14 +44,14 @@ export const updateModule = authActionClient
|
||||
'Updating module...',
|
||||
);
|
||||
|
||||
const module = await api.modules.updateModule(input);
|
||||
const data = await api.modules.updateModule(input);
|
||||
|
||||
logger.info(
|
||||
{ name: 'modules.update', moduleId: module.id },
|
||||
{ name: 'modules.update', moduleId: data.id },
|
||||
'Module updated',
|
||||
);
|
||||
|
||||
return { success: true, module };
|
||||
return { success: true, data };
|
||||
});
|
||||
|
||||
export const deleteModule = authActionClient
|
||||
|
||||
@@ -52,7 +52,11 @@ export const createRecord = authActionClient
|
||||
);
|
||||
|
||||
if (!validation.success) {
|
||||
return { success: false, errors: validation.errors };
|
||||
return {
|
||||
success: false,
|
||||
error: 'Validierungsfehler',
|
||||
validationErrors: validation.errors,
|
||||
};
|
||||
}
|
||||
|
||||
logger.info(
|
||||
@@ -72,7 +76,7 @@ export const createRecord = authActionClient
|
||||
newData: input.data as Record<string, unknown>,
|
||||
});
|
||||
|
||||
return { success: true, record };
|
||||
return { success: true, data: record };
|
||||
});
|
||||
|
||||
export const updateRecord = authActionClient
|
||||
@@ -86,6 +90,40 @@ export const updateRecord = authActionClient
|
||||
// Get existing record for audit
|
||||
const existing = await api.records.getRecord(input.recordId);
|
||||
|
||||
// Validate data against field definitions
|
||||
const moduleId = existing.module_id as string;
|
||||
const moduleWithFields = await api.modules.getModuleWithFields(moduleId);
|
||||
|
||||
if (!moduleWithFields) {
|
||||
throw new Error('Module not found');
|
||||
}
|
||||
|
||||
const fields = (
|
||||
moduleWithFields as unknown as {
|
||||
fields: Array<{
|
||||
name: string;
|
||||
field_type: string;
|
||||
is_required: boolean;
|
||||
min_value?: number | null;
|
||||
max_value?: number | null;
|
||||
max_length?: number | null;
|
||||
regex_pattern?: string | null;
|
||||
}>;
|
||||
}
|
||||
).fields;
|
||||
const validation = validateRecordData(
|
||||
input.data as Record<string, unknown>,
|
||||
fields as Parameters<typeof validateRecordData>[1],
|
||||
);
|
||||
|
||||
if (!validation.success) {
|
||||
return {
|
||||
success: false,
|
||||
error: 'Validierungsfehler',
|
||||
validationErrors: validation.errors,
|
||||
};
|
||||
}
|
||||
|
||||
logger.info(
|
||||
{ name: 'records.update', recordId: input.recordId },
|
||||
'Updating record...',
|
||||
@@ -104,7 +142,7 @@ export const updateRecord = authActionClient
|
||||
newData: input.data as Record<string, unknown>,
|
||||
});
|
||||
|
||||
return { success: true, record };
|
||||
return { success: true, data: record };
|
||||
});
|
||||
|
||||
export const deleteRecord = authActionClient
|
||||
@@ -156,5 +194,5 @@ export const lockRecord = authActionClient
|
||||
newData: { locked: input.lock },
|
||||
});
|
||||
|
||||
return { success: true, record };
|
||||
return { success: true, data: record };
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user