Spaces:
Runtime error
Runtime error
Download apps/server/src/middleware/errorHandler.js from moustafa7/flwo: direct link, hf CLI and curl.
- Browser
- Download file 1.42 kB
-
https://huggingface.co/spaces/moustafa7/flwo/resolve/main/apps/server/src/middleware/errorHandler.js
- Command line
-
hf download hf://spaces/moustafa7/flwo/apps/server/src/middleware/errorHandler.js
-
curl -L -o errorHandler.js https://huggingface.co/spaces/moustafa7/flwo/resolve/main/apps/server/src/middleware/errorHandler.js
1.42 kB
| import { Prisma } from '@prisma/client' | |
| import { logger } from '../lib/logger.js' | |
| export function errorHandler(err, req, res, next) { | |
| if (!err.isOperational) { | |
| logger.error(err, 'Unhandled error') | |
| } | |
| let statusCode = 500 | |
| let message = 'حدث خطأ داخلي' | |
| let code = 'INTERNAL_ERROR' | |
| let details = null | |
| if (err instanceof Prisma.PrismaClientKnownRequestError) { | |
| if (err.code === 'P2002') { | |
| statusCode = 409; message = 'هذه البيانات مستخدمة بالفعل'; code = 'DUPLICATE_ENTRY' | |
| } else if (err.code === 'P2025') { | |
| statusCode = 404; message = 'العنصر غير موجود'; code = 'NOT_FOUND' | |
| } | |
| } else if (err.name === 'JsonWebTokenError' || err.name === 'JsonWebTokenError') { | |
| statusCode = 401; message = 'رمز المصادقة غير صحيح'; code = 'INVALID_TOKEN' | |
| } else if (err.name === 'TokenExpiredError') { | |
| statusCode = 401; message = 'انتهت صلاحية الجلسة'; code = 'TOKEN_EXPIRED' | |
| } else if (err.name === 'ZodError') { | |
| statusCode = 400; message = 'بيانات غير صحيحة'; code = 'VALIDATION_ERROR' | |
| details = err.flatten?.()?.fieldErrors || {} | |
| } else if (err.isOperational) { | |
| statusCode = err.statusCode; message = err.message; code = err.code | |
| } | |
| const body = { success: false, message, code } | |
| if (details) body.details = details | |
| return res.status(statusCode).json(body) | |
| } | |