// Response Helpers // Standardize API response format across all routes const { HTTP_STATUS } = require('./constants'); /** * Success response with data */ function success(res, data, statusCode = HTTP_STATUS.OK) { return res.status(statusCode).json({ success: true, ...data }); } /** * Success response with message */ function successMessage(res, message, statusCode = HTTP_STATUS.OK) { return res.status(statusCode).json({ success: true, message }); } /** * Created response (201) */ function created(res, data) { return res.status(HTTP_STATUS.CREATED).json({ success: true, ...data }); } /** * No content response (204) */ function noContent(res) { return res.status(HTTP_STATUS.NO_CONTENT).send(); } /** * Error response */ function error(res, message, statusCode = HTTP_STATUS.INTERNAL_ERROR) { return res.status(statusCode).json({ success: false, error: message }); } /** * Validation error response (400) */ function validationError(res, message) { return res.status(HTTP_STATUS.BAD_REQUEST).json({ success: false, error: message }); } /** * Unauthorized response (401) */ function unauthorized(res, message = 'Unauthorized') { return res.status(HTTP_STATUS.UNAUTHORIZED).json({ success: false, error: message }); } /** * Forbidden response (403) */ function forbidden(res, message = 'Forbidden') { return res.status(HTTP_STATUS.FORBIDDEN).json({ success: false, error: message }); } /** * Not found response (404) */ function notFound(res, message = 'Not found') { return res.status(HTTP_STATUS.NOT_FOUND).json({ success: false, error: message }); } /** * Conflict response (409) */ function conflict(res, message) { return res.status(HTTP_STATUS.CONFLICT).json({ success: false, error: message }); } module.exports = { success, successMessage, created, noContent, error, validationError, unauthorized, forbidden, notFound, conflict };