File size: 903 Bytes
2c16c8c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { Request, Response, NextFunction } from "express";

export const responseHandler = (req: Request, res: Response, next: NextFunction) => {
  const startTime = Date.now();

  res.success = (data: any, message = "Request successful") => {
    const responseTime = Date.now() - startTime;
    return res.status(200).json({
      success: true,
      message,
      data,
      timestamp: new Date().toISOString(),
      responseTime: `${responseTime}ms`,
    });
  };

  res.error = (statusCode: number, errorCode: string, errorMessage: string, error: any = null) => {
    const responseTime = Date.now() - startTime;
    return res.status(statusCode).json({
      success: false,
      code: errorCode,
      errorMessage: errorMessage,
      error: error,
      timestamp: new Date().toISOString(),
      responseTime: `${responseTime}ms`,
    });
  };

  next();
};