http-response-handler
Version:
A comprehensive utility for standardizing HTTP responses in Node.js applications
160 lines (159 loc) • 4.53 kB
JavaScript
const responseHandler = {
success: (res, message, data, statusCode = 200) => {
res.status(statusCode).json({
success: true,
message,
data,
});
},
error: (res, message, statusCode = 500) => {
res.status(statusCode).json({
success: false,
message,
});
},
validationError: (res, message, statusCode = 400) => {
res.status(statusCode).json({
success: false,
message,
});
},
notFound: (res, message, statusCode = 404) => {
res.status(statusCode).json({
success: false,
message,
});
},
unauthorized: (res, message, statusCode = 401) => {
res.status(statusCode).json({
success: false,
message,
});
},
forbidden: (res, message, statusCode = 403) => {
res.status(statusCode).json({
success: false,
message,
});
},
badRequest: (res, message, statusCode = 400) => {
res.status(statusCode).json({
success: false,
message,
});
},
internalServerError: (res, message, statusCode = 500) => {
res.status(statusCode).json({
success: false,
message,
});
},
conflict: (res, message, statusCode = 409) => {
res.status(statusCode).json({
success: false,
message,
});
},
tooManyRequests: (res, message, statusCode = 429) => {
res.status(statusCode).json({
success: false,
message,
});
},
serviceUnavailable: (res, message, statusCode = 503) => {
res.status(statusCode).json({
success: false,
message,
});
},
gatewayTimeout: (res, message, statusCode = 504) => {
res.status(statusCode).json({
success: false,
message,
});
},
unprocessableEntity: (res, message, statusCode = 422) => {
res.status(statusCode).json({
success: false,
message,
});
},
created: (res, message, data, statusCode = 201) => {
res.status(statusCode).json({
success: true,
message,
data,
});
},
accepted: (res, message, data, statusCode = 202) => {
res.status(statusCode).json({
success: true,
message,
data,
});
},
noContent: (res, statusCode = 204) => {
res.status(statusCode).send();
},
movedPermanently: (res, newLocation, statusCode = 301) => {
res.status(statusCode).redirect(newLocation);
},
temporaryRedirect: (res, newLocation, statusCode = 307) => {
res.status(statusCode).redirect(newLocation);
},
paymentRequired: (res, message, statusCode = 402) => {
res.status(statusCode).json({
success: false,
message,
});
},
methodNotAllowed: (res, message, statusCode = 405) => {
res.status(statusCode).json({
success: false,
message,
});
},
notAcceptable: (res, message, statusCode = 406) => {
res.status(statusCode).json({
success: false,
message,
});
},
preconditionFailed: (res, message, statusCode = 412) => {
res.status(statusCode).json({
success: false,
message,
});
},
unsupportedMediaType: (res, message, statusCode = 415) => {
res.status(statusCode).json({
success: false,
message,
});
},
imATeapot: (res, message, statusCode = 418) => {
res.status(statusCode).json({
success: false,
message,
});
},
upgradeRequired: (res, message, statusCode = 426) => {
res.status(statusCode).json({
success: false,
message,
});
},
notImplemented: (res, message, statusCode = 501) => {
res.status(statusCode).json({
success: false,
message,
});
},
badGateway: (res, message, statusCode = 502) => {
res.status(statusCode).json({
success: false,
message,
});
},
};
export default responseHandler;