Extract code for error messages for better reusability

+ Create function for generating permission errors
This commit is contained in:
Stephan
2021-12-29 15:19:18 +01:00
parent 913e0ee0e0
commit b82a84322b
+14 -8
View File
@@ -1,22 +1,19 @@
import prisma from "../lib/prisma"; import prisma from "../lib/prisma";
import { Request, Response } from "express"; import { Request, Response } from "express";
import { AdminLevel } from "@prisma/client";
// requires: auth(elevated) const AUTH_ERROR = {
export const getAllAdmins = async (req: Request, res: Response) => {
if (!req.auth?.isAuthenticated) {
return res.status(500).json({
type: "failure", type: "failure",
payload: { payload: {
message: "The server was not able to validate your credentials; Please try again later", message: "The server was not able to validate your credentials; Please try again later",
}, },
}); };
}
if (req.auth.permission_level !== "ELEVATED") { const createInsufficientPermissionsError = (required: AdminLevel = "ELEVATED") => ({
return res.status(403).json({
type: "error", type: "error",
payload: { payload: {
message: "You do not have sufficient permissions to use this feature", message: "You do not have sufficient permissions to use this feature",
required_level: required,
}, },
_links: [ _links: [
{ {
@@ -26,6 +23,15 @@ export const getAllAdmins = async (req: Request, res: Response) => {
}, },
], ],
}); });
// requires: auth(elevated)
export const getAllAdmins = async (req: Request, res: Response) => {
if (!req.auth?.isAuthenticated) {
return res.status(500).json(AUTH_ERROR);
}
if (req.auth.permission_level !== "ELEVATED") {
return res.status(403).json(createInsufficientPermissionsError());
} }
// TODO: Add exception handling // TODO: Add exception handling