Skip to content

Commit

Permalink
Merge pull request #1591 from bluewave-labs/feat/be/consistent-respon…
Browse files Browse the repository at this point in the history
…se-middleare

feat: be/consistent response middleare
  • Loading branch information
ajhollid authored Jan 20, 2025
2 parents 8d148cd + 792b51b commit d91fe03
Show file tree
Hide file tree
Showing 13 changed files with 129 additions and 114 deletions.
48 changes: 27 additions & 21 deletions Server/controllers/authController.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,7 @@ class AuthController {
});
});

return res.status(200).json({
success: true,
res.success({
msg: successMessages.AUTH_CREATE_USER,
data: { user: newUser, token: token, refreshToken: refreshToken },
});
Expand Down Expand Up @@ -154,7 +153,9 @@ class AuthController {
// Compare password
const match = await user.comparePassword(password);
if (match !== true) {
next(new Error(errorMessages.AUTH_INCORRECT_PASSWORD));
const error = new Error(errorMessages.AUTH_INCORRECT_PASSWORD);
error.status = 401;
next(error);
return;
}

Expand All @@ -174,12 +175,16 @@ class AuthController {
// reset avatar image
userWithoutPassword.avatarImage = user.avatarImage;

return res.status(200).json({
success: true,
return res.success({
msg: successMessages.AUTH_LOGIN_USER,
data: { user: userWithoutPassword, token: token, refreshToken: refreshToken },
data: {
user: userWithoutPassword,
token: token,
refreshToken: refreshToken,
},
});
} catch (error) {
error.status = 401;
next(handleError(error, SERVICE_NAME, "loginUser"));
}
};
Expand Down Expand Up @@ -237,8 +242,7 @@ class AuthController {
appSettings
);

return res.status(200).json({
success: true,
return res.success({
msg: successMessages.AUTH_TOKEN_REFRESHED,
data: { user: payloadData, token: newAuthToken, refreshToken: refreshToken },
});
Expand Down Expand Up @@ -306,8 +310,7 @@ class AuthController {
}

const updatedUser = await this.db.updateUser(req, res);
return res.status(200).json({
success: true,
res.success({
msg: successMessages.AUTH_UPDATE_USER,
data: updatedUser,
});
Expand All @@ -328,8 +331,8 @@ class AuthController {
checkSuperadminExists = async (req, res, next) => {
try {
const superAdminExists = await this.db.checkSuperadmin(req, res);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.AUTH_ADMIN_EXISTS,
data: superAdminExists,
});
Expand Down Expand Up @@ -375,8 +378,7 @@ class AuthController {
"Checkmate Password Reset"
);

return res.status(200).json({
success: true,
return res.success({
msg: successMessages.AUTH_CREATE_RECOVERY_TOKEN,
data: msgId,
});
Expand Down Expand Up @@ -406,8 +408,8 @@ class AuthController {

try {
await this.db.validateRecoveryToken(req, res);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.AUTH_VERIFY_RECOVERY_TOKEN,
});
} catch (error) {
Expand Down Expand Up @@ -439,8 +441,8 @@ class AuthController {
const user = await this.db.resetPassword(req, res);
const appSettings = await this.settingsService.getSettings();
const token = this.issueToken(user._doc, tokenType.ACCESS_TOKEN, appSettings);
res.status(200).json({
success: true,

return res.success({
msg: successMessages.AUTH_RESET_PASSWORD,
data: { user, token },
});
Expand Down Expand Up @@ -493,8 +495,8 @@ class AuthController {
}
// 6. Delete the user by id
await this.db.deleteUser(user._id);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.AUTH_DELETE_USER,
});
} catch (error) {
Expand All @@ -505,7 +507,11 @@ class AuthController {
getAllUsers = async (req, res, next) => {
try {
const allUsers = await this.db.getAllUsers(req, res);
res.status(200).json({ success: true, msg: "Got all users", data: allUsers });

return res.success({
msg: successMessages.AUTH_GET_ALL_USERS,
data: allUsers,
});
} catch (error) {
next(handleError(error, SERVICE_NAME, "getAllUsersController"));
}
Expand Down
28 changes: 15 additions & 13 deletions Server/controllers/checkController.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,11 @@ class CheckController {
try {
const checkData = { ...req.body };
const check = await this.db.createCheck(checkData);
return res
.status(200)
.json({ success: true, msg: successMessages.CHECK_CREATE, data: check });

return res.success({
msg: successMessages.CHECK_CREATE,
data: check,
});
} catch (error) {
next(handleError(error, SERVICE_NAME, "createCheck"));
}
Expand All @@ -54,8 +56,8 @@ class CheckController {
try {
const checks = await this.db.getChecks(req);
const checksCount = await this.db.getChecksCount(req);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.CHECK_GET,
data: { checksCount, checks },
});
Expand All @@ -74,8 +76,8 @@ class CheckController {
}
try {
const checkData = await this.db.getTeamChecks(req);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.CHECK_GET,
data: checkData,
});
Expand All @@ -94,8 +96,8 @@ class CheckController {

try {
const deletedCount = await this.db.deleteChecks(req.params.monitorId);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.CHECK_DELETE,
data: { deletedCount },
});
Expand All @@ -114,8 +116,8 @@ class CheckController {

try {
const deletedCount = await this.db.deleteChecksByTeamId(req.params.teamId);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.CHECK_DELETE,
data: { deletedCount },
});
Expand All @@ -141,8 +143,8 @@ class CheckController {
const { teamId } = jwt.verify(token, jwtSecret);
const ttl = parseInt(req.body.ttl, 10) * SECONDS_PER_DAY;
await this.db.updateChecksTTL(teamId, ttl);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.CHECK_UPDATE_TTL,
});
} catch (error) {
Expand Down
18 changes: 7 additions & 11 deletions Server/controllers/controllerUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,14 @@ const handleError = (error, serviceName, method, status = 500) => {
};

const fetchMonitorCertificate = async (sslChecker, monitor) => {
try {
const monitorUrl = new URL(monitor.url);
const hostname = monitorUrl.hostname;
const cert = await sslChecker(hostname);
// Throw an error if no cert or if cert.validTo is not present
if (cert?.validTo === null || cert?.validTo === undefined) {
throw new Error("Certificate not found");
}
return cert;
} catch (error) {
throw error;
const monitorUrl = new URL(monitor.url);
const hostname = monitorUrl.hostname;
const cert = await sslChecker(hostname);
// Throw an error if no cert or if cert.validTo is not present
if (cert?.validTo === null || cert?.validTo === undefined) {
throw new Error("Certificate not found");
}
return cert;
};

export { handleValidationError, handleError, fetchMonitorCertificate };
15 changes: 10 additions & 5 deletions Server/controllers/inviteController.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import logger from "../utils/logger.js";
import jwt from "jsonwebtoken";
import { handleError, handleValidationError } from "./controllerUtils.js";
import { getTokenFromHeaders } from "../utils/utils.js";

import { successMessages } from "../utils/messages.js";
const SERVICE_NAME = "inviteController";

class InviteController {
Expand Down Expand Up @@ -65,9 +65,10 @@ class InviteController {
});
});

return res
.status(200)
.json({ success: true, msg: "Invite sent", data: inviteToken });
return res.success({
msg: successMessages.INVITE_ISSUED,
data: inviteToken,
});
} catch (error) {
next(handleError(error, SERVICE_NAME, "inviteController"));
}
Expand All @@ -83,7 +84,11 @@ class InviteController {

try {
const invite = await this.db.getInviteToken(req.body.token);
res.status(200).json({ status: "success", msg: "Invite verified", data: invite });

return res.success({
msg: successMessages.INVITE_VERIFIED,
data: invite,
});
} catch (error) {
next(handleError(error, SERVICE_NAME, "inviteVerifyController"));
}
Expand Down
20 changes: 8 additions & 12 deletions Server/controllers/maintenanceWindowController.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ class MaintenanceWindowController {
});
});
await Promise.all(dbTransactions);
return res.status(201).json({
success: true,

return res.success({
msg: successMessages.MAINTENANCE_WINDOW_CREATE,
});
} catch (error) {
Expand All @@ -61,8 +61,8 @@ class MaintenanceWindowController {
}
try {
const maintenanceWindow = await this.db.getMaintenanceWindowById(req.params.id);
return res.status(200).json({
success: true,

return res.success({
msg: successMessages.MAINTENANCE_WINDOW_GET_BY_ID,
data: maintenanceWindow,
});
Expand All @@ -88,8 +88,7 @@ class MaintenanceWindowController {
req.query
);

return res.status(200).json({
success: true,
return res.success({
msg: successMessages.MAINTENANCE_WINDOW_GET_BY_TEAM,
data: maintenanceWindows,
});
Expand All @@ -111,8 +110,7 @@ class MaintenanceWindowController {
req.params.monitorId
);

return res.status(200).json({
success: true,
return res.success({
msg: successMessages.MAINTENANCE_WINDOW_GET_BY_USER,
data: maintenanceWindows,
});
Expand All @@ -130,8 +128,7 @@ class MaintenanceWindowController {
}
try {
await this.db.deleteMaintenanceWindowById(req.params.id);
return res.status(200).json({
success: true,
return res.success({
msg: successMessages.MAINTENANCE_WINDOW_DELETE,
});
} catch (error) {
Expand All @@ -152,8 +149,7 @@ class MaintenanceWindowController {
req.params.id,
req.body
);
return res.status(200).json({
success: true,
return res.success({
msg: successMessages.MAINTENANCE_WINDOW_EDIT,
data: editedMaintenanceWindow,
});
Expand Down
Loading

0 comments on commit d91fe03

Please sign in to comment.