UNPKG

powr-sdk-api

Version:

Shared API core library for PowrStack projects

53 lines (49 loc) 1.34 kB
"use strict"; const logger = require('../services/logger'); const responseFormatter = (req, res, next) => { // Add success method to response object res.success = function (message = 'Success', statusCode = 200, data = null) { const response = { success: true, message }; // Only include data if it's not null if (data !== null) { response.data = data; } return this.status(statusCode).json(response); }; // Add error method to response object res.error = function (message = 'Error', statusCode = 500, error = null) { const response = { success: false, message }; // Only include details if they're not null if (error !== null) { response.error = error; } return this.status(statusCode).json(response); }; next(); }; const responseLogger = (req, res, next) => { const startTime = Date.now(); res.on('finish', () => { const responseTime = Date.now() - startTime; logger.info('API Response', { method: req.method, url: req.originalUrl, statusCode: res.statusCode, responseTime: `${responseTime}ms`, userAgent: req.get('user-agent'), ip: req.ip, response: res.locals.responseBody || '[not captured]' }); }); next(); }; module.exports = { responseFormatter, responseLogger };