1 |
rakinar2 |
577 |
import { NextFunction, Request, Response } from "express"; |
2 |
|
|
import type Controller from "../api/Controller"; |
3 |
|
|
import RequireAuthMiddleware from "../api/middleware/RequireAuthMiddleware"; |
4 |
|
|
import type Client from "../core/Client"; |
5 |
|
|
|
6 |
|
|
export function RequireAuth(fetchUser = true) { |
7 |
|
|
return (target: Controller, propertyKey: string, descriptor: PropertyDescriptor) => { |
8 |
|
|
const metadata = Reflect.getMetadata("auth_middleware", target) ?? {}; |
9 |
|
|
const middleware = (client: Client, req: Request, res: Response, next: NextFunction) => |
10 |
|
|
RequireAuthMiddleware(client, fetchUser, req, res, next); |
11 |
|
|
|
12 |
|
|
metadata[propertyKey] ??= middleware; |
13 |
|
|
|
14 |
|
|
Reflect.defineMetadata("auth_middleware", metadata, target); |
15 |
|
|
}; |
16 |
|
|
} |