aboutsummaryrefslogtreecommitdiff
path: root/src/server/RouteManager.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/RouteManager.ts')
-rw-r--r--src/server/RouteManager.ts92
1 files changed, 46 insertions, 46 deletions
diff --git a/src/server/RouteManager.ts b/src/server/RouteManager.ts
index 540bca776..d8e0455f6 100644
--- a/src/server/RouteManager.ts
+++ b/src/server/RouteManager.ts
@@ -1,9 +1,9 @@
import { cyan, green, red } from 'colors';
import { Express, Request, Response } from 'express';
-import { AdminPriviliges } from '.';
import { Utils } from '../Utils';
-import { DashUserModel } from './authentication/DashUserModel';
import RouteSubscriber from './RouteSubscriber';
+import { AdminPrivileges } from './SocketData';
+import { DashUserModel } from './authentication/DashUserModel';
export enum Method {
GET,
@@ -21,6 +21,34 @@ export type SecureHandler = (core: AuthorizedCore) => any | Promise<any>;
export type PublicHandler = (core: CoreArguments) => any | Promise<any>;
export type ErrorHandler = (core: CoreArguments & { error: any }) => any | Promise<any>;
+export const STATUS = {
+ OK: 200,
+ BAD_REQUEST: 400,
+ EXECUTION_ERROR: 500,
+ PERMISSION_DENIED: 403,
+};
+
+export function _error(res: Response, message: string, error?: any) {
+ console.error(message, error);
+ res.statusMessage = message;
+ res.status(STATUS.EXECUTION_ERROR).send(error);
+}
+
+export function _success(res: Response, body: any) {
+ res.status(STATUS.OK).send(body);
+}
+
+export function _invalid(res: Response, message: string) {
+ res.statusMessage = message;
+ res.status(STATUS.BAD_REQUEST).send();
+}
+
+export function _permissionDenied(res: Response, message?: string) {
+ if (message) {
+ res.statusMessage = message;
+ }
+ res.status(STATUS.PERMISSION_DENIED).send(`Permission Denied! ${message}`);
+}
export interface RouteInitializer {
method: Method;
subscription: string | RouteSubscriber | (string | RouteSubscriber)[];
@@ -71,7 +99,7 @@ export default class RouteManager {
console.log('please remove all duplicate routes before continuing');
}
if (malformedCount) {
- console.log(`please ensure all routes adhere to ^\/$|^\/[A-Za-z]+(\/\:[A-Za-z?_]+)*$`);
+ console.log(`please ensure all routes adhere to ^/$|^/[A-Za-z]+(/:[A-Za-z?_]+)*$`);
}
process.exit(1);
} else {
@@ -94,7 +122,7 @@ export default class RouteManager {
typeof initializer.subscription === 'string' && RouteManager.routes.push(initializer.subscription);
initializer.subscription instanceof RouteSubscriber && RouteManager.routes.push(initializer.subscription.root);
initializer.subscription instanceof Array &&
- initializer.subscription.map(sub => {
+ initializer.subscription.forEach(sub => {
typeof sub === 'string' && RouteManager.routes.push(sub);
sub instanceof RouteSubscriber && RouteManager.routes.push(sub.root);
});
@@ -120,23 +148,23 @@ export default class RouteManager {
};
if (user) {
if (requireAdmin && isRelease && process.env.PASSWORD) {
- if (AdminPriviliges.get(user.id)) {
- AdminPriviliges.delete(user.id);
+ if (AdminPrivileges.get(user.id)) {
+ AdminPrivileges.delete(user.id);
} else {
- return res.redirect(`/admin/${req.originalUrl.substring(1).replace('/', ':')}`);
+ res.redirect(`/admin/${req.originalUrl.substring(1).replace('/', ':')}`);
+ return;
}
}
await tryExecute(secureHandler, { ...core, user });
- } else {
- //req.session!.target = target;
- if (publicHandler) {
- await tryExecute(publicHandler, core);
- if (!res.headersSent) {
- // res.redirect("/login");
- }
- } else {
- res.redirect('/login');
+ }
+ // req.session!.target = target;
+ else if (publicHandler) {
+ await tryExecute(publicHandler, core);
+ if (!res.headersSent) {
+ // res.redirect("/login");
}
+ } else {
+ res.redirect('/login');
}
setTimeout(() => {
if (!res.headersSent) {
@@ -153,7 +181,7 @@ export default class RouteManager {
} else {
route = subscriber.build;
}
- if (!/^\/$|^\/[A-Za-z\*]+(\/\:[A-Za-z?_\*]+)*$/g.test(route)) {
+ if (!/^\/$|^\/[A-Za-z*]+(\/:[A-Za-z?_*]+)*$/g.test(route)) {
this.failedRegistrations.push({
reason: RegistrationError.Malformed,
route,
@@ -180,6 +208,7 @@ export default class RouteManager {
case Method.POST:
this.server.post(route, supervised);
break;
+ default:
}
}
};
@@ -190,32 +219,3 @@ export default class RouteManager {
}
};
}
-
-export const STATUS = {
- OK: 200,
- BAD_REQUEST: 400,
- EXECUTION_ERROR: 500,
- PERMISSION_DENIED: 403,
-};
-
-export function _error(res: Response, message: string, error?: any) {
- console.error(message, error);
- res.statusMessage = message;
- res.status(STATUS.EXECUTION_ERROR).send(error);
-}
-
-export function _success(res: Response, body: any) {
- res.status(STATUS.OK).send(body);
-}
-
-export function _invalid(res: Response, message: string) {
- res.statusMessage = message;
- res.status(STATUS.BAD_REQUEST).send();
-}
-
-export function _permission_denied(res: Response, message?: string) {
- if (message) {
- res.statusMessage = message;
- }
- res.status(STATUS.PERMISSION_DENIED).send(`Permission Denied! ${message}`);
-}