Improve centralized error handling
This commit is contained in:
@@ -4,13 +4,12 @@ import {
|
||||
logPasswordChange,
|
||||
logEmailLink,
|
||||
} from '../services/audit.service.js';
|
||||
import { formatErrorResponse } from '../utils/errors.js';
|
||||
|
||||
/**
|
||||
* KROK 1: Login s temporary password
|
||||
* POST /api/auth/login
|
||||
*/
|
||||
export const login = async (req, res) => {
|
||||
export const login = async (req, res, next) => {
|
||||
const { username, password } = req.body;
|
||||
const ipAddress = req.ip || req.connection.remoteAddress;
|
||||
const userAgent = req.headers['user-agent'];
|
||||
@@ -55,8 +54,7 @@ export const login = async (req, res) => {
|
||||
// Log failed login
|
||||
await logLoginAttempt(username, false, ipAddress, userAgent, error.message);
|
||||
|
||||
const errorResponse = formatErrorResponse(error, process.env.NODE_ENV === 'development');
|
||||
res.status(error.statusCode || 500).json(errorResponse);
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -65,7 +63,7 @@ export const login = async (req, res) => {
|
||||
* POST /api/auth/set-password
|
||||
* Requires: authentication
|
||||
*/
|
||||
export const setPassword = async (req, res) => {
|
||||
export const setPassword = async (req, res, next) => {
|
||||
const { newPassword } = req.body;
|
||||
const userId = req.userId;
|
||||
const ipAddress = req.ip || req.connection.remoteAddress;
|
||||
@@ -83,8 +81,7 @@ export const setPassword = async (req, res) => {
|
||||
message: 'Heslo úspešne nastavené',
|
||||
});
|
||||
} catch (error) {
|
||||
const errorResponse = formatErrorResponse(error, process.env.NODE_ENV === 'development');
|
||||
res.status(error.statusCode || 500).json(errorResponse);
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -93,7 +90,7 @@ export const setPassword = async (req, res) => {
|
||||
* POST /api/auth/link-email
|
||||
* Requires: authentication
|
||||
*/
|
||||
export const linkEmail = async (req, res) => {
|
||||
export const linkEmail = async (req, res, next) => {
|
||||
const { email, emailPassword } = req.body;
|
||||
const userId = req.userId;
|
||||
const ipAddress = req.ip || req.connection.remoteAddress;
|
||||
@@ -114,8 +111,7 @@ export const linkEmail = async (req, res) => {
|
||||
message: 'Email účet úspešne pripojený a overený',
|
||||
});
|
||||
} catch (error) {
|
||||
const errorResponse = formatErrorResponse(error, process.env.NODE_ENV === 'development');
|
||||
res.status(error.statusCode || 500).json(errorResponse);
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -124,7 +120,7 @@ export const linkEmail = async (req, res) => {
|
||||
* POST /api/auth/skip-email
|
||||
* Requires: authentication
|
||||
*/
|
||||
export const skipEmail = async (req, res) => {
|
||||
export const skipEmail = async (req, res, next) => {
|
||||
const userId = req.userId;
|
||||
|
||||
try {
|
||||
@@ -136,8 +132,7 @@ export const skipEmail = async (req, res) => {
|
||||
message: 'Email setup preskočený',
|
||||
});
|
||||
} catch (error) {
|
||||
const errorResponse = formatErrorResponse(error, process.env.NODE_ENV === 'development');
|
||||
res.status(error.statusCode || 500).json(errorResponse);
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -146,7 +141,7 @@ export const skipEmail = async (req, res) => {
|
||||
* POST /api/auth/logout
|
||||
* Requires: authentication
|
||||
*/
|
||||
export const logout = async (req, res) => {
|
||||
export const logout = async (req, res, next) => {
|
||||
try {
|
||||
const result = await authService.logout();
|
||||
|
||||
@@ -159,8 +154,7 @@ export const logout = async (req, res) => {
|
||||
message: result.message,
|
||||
});
|
||||
} catch (error) {
|
||||
const errorResponse = formatErrorResponse(error, process.env.NODE_ENV === 'development');
|
||||
res.status(error.statusCode || 500).json(errorResponse);
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -169,7 +163,7 @@ export const logout = async (req, res) => {
|
||||
* GET /api/auth/session
|
||||
* Requires: authentication
|
||||
*/
|
||||
export const getSession = async (req, res) => {
|
||||
export const getSession = async (req, res, next) => {
|
||||
try {
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
@@ -179,8 +173,7 @@ export const getSession = async (req, res) => {
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
const errorResponse = formatErrorResponse(error, process.env.NODE_ENV === 'development');
|
||||
res.status(error.statusCode || 500).json(errorResponse);
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -189,7 +182,7 @@ export const getSession = async (req, res) => {
|
||||
* GET /api/auth/me
|
||||
* Requires: authentication
|
||||
*/
|
||||
export const getMe = async (req, res) => {
|
||||
export const getMe = async (req, res, next) => {
|
||||
try {
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
@@ -198,7 +191,6 @@ export const getMe = async (req, res) => {
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
const errorResponse = formatErrorResponse(error, process.env.NODE_ENV === 'development');
|
||||
res.status(error.statusCode || 500).json(errorResponse);
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user