feat(audit, frontend, backend): introduce audit scripts and enhance error handling
- Added new npm scripts for auditing frontend size and inline TODOs, improving code quality management. - Enhanced error handling in the `nuscoreApiRoutes` to return specific validation error statuses, improving API response clarity. - Updated SQL migration documentation to establish a clear process for manual migrations and ensure backward compatibility. - Refactored various components to align with new design standards, enhancing UI consistency across the application.
This commit is contained in:
@@ -188,6 +188,18 @@ router.put('/submit/:uuid', async (req, res) => {
|
||||
const { uuid } = req.params;
|
||||
const reportData = req.body;
|
||||
|
||||
console.log('[nuscore submit] request', {
|
||||
uuid,
|
||||
wo: reportData?.wo ?? null,
|
||||
isCompleted: reportData?.isCompleted ?? null,
|
||||
homePin: reportData?.homePin ?? null,
|
||||
guestPin: reportData?.guestPin ?? null,
|
||||
releaseSignatureHome: reportData?.signature?.releaseSignatureHome ?? null,
|
||||
releaseSignatureGuest: reportData?.signature?.releaseSignatureGuest ?? null,
|
||||
lineupSignatureHome: reportData?.signature?.lineupSignatureHome ?? null,
|
||||
lineupSignatureGuest: reportData?.signature?.lineupSignatureGuest ?? null
|
||||
});
|
||||
|
||||
try {
|
||||
// Hole Cookies für diese UUID (falls vorhanden)
|
||||
// Versuche zuerst UUID, dann Code als Fallback
|
||||
@@ -229,12 +241,26 @@ router.put('/submit/:uuid', async (req, res) => {
|
||||
responseData = { message: responseText };
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
console.log('[nuscore submit] response', {
|
||||
uuid,
|
||||
httpStatus: response.status,
|
||||
resultState: responseData?.resultState ?? null,
|
||||
validationErrors: responseData?.validationErrors ?? [],
|
||||
releaseSignatureHome: responseData?.object?.signature?.releaseSignatureHome ?? null,
|
||||
releaseSignatureGuest: responseData?.object?.signature?.releaseSignatureGuest ?? null,
|
||||
lineupSignatureHome: responseData?.object?.signature?.lineupSignatureHome ?? null,
|
||||
lineupSignatureGuest: responseData?.object?.signature?.lineupSignatureGuest ?? null
|
||||
});
|
||||
|
||||
const resultState = responseData?.resultState;
|
||||
const validationErrors = Array.isArray(responseData?.validationErrors) ? responseData.validationErrors : [];
|
||||
|
||||
if (!response.ok || resultState === 'VALIDATION_ERROR') {
|
||||
console.error(`❌ Submit fehlgeschlagen: HTTP ${response.status}`, responseData);
|
||||
return res.status(response.status).json({
|
||||
return res.status(resultState === 'VALIDATION_ERROR' ? 422 : response.status).json({
|
||||
error: 'Fehler beim Absenden des Spielberichts',
|
||||
details: responseData,
|
||||
status: response.status,
|
||||
status: resultState === 'VALIDATION_ERROR' ? 422 : response.status,
|
||||
statusText: response.statusText
|
||||
});
|
||||
}
|
||||
@@ -294,6 +320,18 @@ router.put('/validate/:uuid', async (req, res) => {
|
||||
const { uuid } = req.params;
|
||||
const reportData = req.body;
|
||||
|
||||
console.log('[nuscore validate] request', {
|
||||
uuid,
|
||||
wo: reportData?.wo ?? null,
|
||||
isCompleted: reportData?.isCompleted ?? null,
|
||||
homePin: reportData?.homePin ?? null,
|
||||
guestPin: reportData?.guestPin ?? null,
|
||||
releaseSignatureHome: reportData?.signature?.releaseSignatureHome ?? null,
|
||||
releaseSignatureGuest: reportData?.signature?.releaseSignatureGuest ?? null,
|
||||
lineupSignatureHome: reportData?.signature?.lineupSignatureHome ?? null,
|
||||
lineupSignatureGuest: reportData?.signature?.lineupSignatureGuest ?? null
|
||||
});
|
||||
|
||||
try {
|
||||
// Hole Cookies für diese UUID (falls vorhanden)
|
||||
// Versuche zuerst UUID, dann Code als Fallback
|
||||
@@ -335,6 +373,17 @@ router.put('/validate/:uuid', async (req, res) => {
|
||||
responseData = { message: responseText };
|
||||
}
|
||||
|
||||
console.log('[nuscore validate] response', {
|
||||
uuid,
|
||||
httpStatus: response.status,
|
||||
resultState: responseData?.resultState ?? null,
|
||||
validationErrors: responseData?.validationErrors ?? [],
|
||||
releaseSignatureHome: responseData?.object?.signature?.releaseSignatureHome ?? null,
|
||||
releaseSignatureGuest: responseData?.object?.signature?.releaseSignatureGuest ?? null,
|
||||
lineupSignatureHome: responseData?.object?.signature?.lineupSignatureHome ?? null,
|
||||
lineupSignatureGuest: responseData?.object?.signature?.lineupSignatureGuest ?? null
|
||||
});
|
||||
|
||||
// Speichere neue Cookies falls vorhanden
|
||||
const newCookies = extractCookies(response.headers.raw()['set-cookie']);
|
||||
if (Object.keys(newCookies).length > 0) {
|
||||
|
||||
Reference in New Issue
Block a user