|
export const errorHandler = (err, req, res, next) => {
|
|
console.error('Error:', err);
|
|
|
|
|
|
if (err.name === 'JsonWebTokenError') {
|
|
return res.status(401).json({ error: 'Invalid token' });
|
|
}
|
|
|
|
if (err.name === 'TokenExpiredError') {
|
|
return res.status(401).json({ error: 'Token expired' });
|
|
}
|
|
|
|
|
|
if (err.response && err.response.status) {
|
|
const status = err.response.status;
|
|
const message = err.response.data?.message || 'GitHub API error';
|
|
|
|
if (status === 401) {
|
|
return res.status(500).json({ error: 'GitHub authentication failed' });
|
|
}
|
|
|
|
if (status === 404) {
|
|
return res.status(404).json({ error: 'Resource not found in GitHub' });
|
|
}
|
|
|
|
return res.status(500).json({ error: `GitHub API error: ${message}` });
|
|
}
|
|
|
|
|
|
res.status(500).json({
|
|
error: process.env.NODE_ENV === 'production'
|
|
? 'Internal server error'
|
|
: err.message
|
|
});
|
|
}; |