35 lines
912 B
TypeScript
35 lines
912 B
TypeScript
|
|
/**
|
||
|
|
* Response Helper Functions
|
||
|
|
*
|
||
|
|
* Purpose: Consistent API response formatting across all endpoints
|
||
|
|
* Ensures all responses follow the same structure
|
||
|
|
*/
|
||
|
|
|
||
|
|
import { Response } from 'express';
|
||
|
|
import { ApiResponse } from '../@types';
|
||
|
|
|
||
|
|
export function sendSuccess<T>(res: Response, data: T, message?: string, statusCode = 200): void {
|
||
|
|
const response: ApiResponse<T> = {
|
||
|
|
success: true,
|
||
|
|
data,
|
||
|
|
...(message && { message }),
|
||
|
|
};
|
||
|
|
res.status(statusCode).json(response);
|
||
|
|
}
|
||
|
|
|
||
|
|
export function sendError(res: Response, error: string, statusCode = 400): void {
|
||
|
|
const response: ApiResponse = {
|
||
|
|
success: false,
|
||
|
|
error,
|
||
|
|
};
|
||
|
|
res.status(statusCode).json(response);
|
||
|
|
}
|
||
|
|
|
||
|
|
export function sendCreated<T>(res: Response, data: T, message = 'Resource created successfully'): void {
|
||
|
|
sendSuccess(res, data, message, 201);
|
||
|
|
}
|
||
|
|
|
||
|
|
export function sendNoContent(res: Response): void {
|
||
|
|
res.status(204).send();
|
||
|
|
}
|