CoolFace
Apppublic

sanket3280/code-execution

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
response.js98 linesDownload Raw Back to utils
1/**2 * Standardized API Response Helpers3 * Provides consistent response format across all endpoints4 */5 6/**7 * Success response8 * @param {Object} res - Express response object9 * @param {Object} data - Response data10 * @param {String} message - Success message11 * @param {Number} statusCode - HTTP status code (default: 200)12 */13const successResponse = (res, data = null, message = 'Success', statusCode = 200) => {14  const response = {15    success: true,16    message,17  };18 19  if (data !== null) {20    response.data = data;21  }22 23  return res.status(statusCode).json(response);24};25 26/**27 * Error response28 * @param {Object} res - Express response object29 * @param {String} message - Error message30 * @param {Number} statusCode - HTTP status code (default: 400)31 * @param {Array} errors - Array of error details32 */33const errorResponse = (res, message = 'Error', statusCode = 400, errors = null) => {34  const response = {35    success: false,36    message,37  };38 39  if (errors) {40    response.errors = errors;41  }42 43  return res.status(statusCode).json(response);44};45 46/**47 * Paginated response48 * @param {Object} res - Express response object49 * @param {Array} data - Array of items50 * @param {Number} page - Current page51 * @param {Number} limit - Items per page52 * @param {Number} total - Total number of items53 * @param {String} message - Success message54 */55const paginatedResponse = (res, data, page, limit, total, message = 'Success') => {56  const totalPages = Math.ceil(total / limit);57  58  return res.status(200).json({59    success: true,60    message,61    data,62    pagination: {63      currentPage: page,64      totalPages,65      totalItems: total,66      itemsPerPage: limit,67      hasNextPage: page < totalPages,68      hasPrevPage: page > 1,69    },70  });71};72 73/**74 * Created response (201)75 * @param {Object} res - Express response object76 * @param {Object} data - Created resource data77 * @param {String} message - Success message78 */79const createdResponse = (res, data, message = 'Resource created successfully') => {80  return successResponse(res, data, message, 201);81};82 83/**84 * No content response (204)85 * @param {Object} res - Express response object86 */87const noContentResponse = (res) => {88  return res.status(204).send();89};90 91module.exports = {92  successResponse,93  errorResponse,94  paginatedResponse,95  createdResponse,96  noContentResponse,97};98