import { RequestHandler } from "../RequestHandler"; import { FastifyRequest, FastifyReply } from 'fastify'; import { UserManagementServer } from "../UserManagementServer"; import { Message } from "../../../browser/messages/Message"; import { ErrorInfo } from "../ErrorInfo"; import { MessageTypes } from "../../../browser/messages/MessageType"; export abstract class RequestRequirement { private _isGlobal:boolean = false; private _ums:UserManagementServer; private _handler:RequestHandler = null; get handler(){ return this._handler; } get ums() { return this._isGlobal ? this._ums : this._handler._ums }; initialize( handler:RequestHandler ):Promise { this._isGlobal = false; this._handler = handler; return Promise.resolve(); } initializeGlobal( ums:UserManagementServer ):Promise { this._isGlobal = true; this._ums = ums; return Promise.resolve(); } sendError( message:string, errorInfo:ErrorInfo = undefined ):Promise { let messages = [ Message.Error( message ) ]; return Promise.resolve( messages ); } giveOK():Promise { return Promise.resolve( [] ); } abstract handle( request:FastifyRequest, reply:FastifyReply ):Promise }