27 lines
682 B
TypeScript
27 lines
682 B
TypeScript
import * as plugins from './sdk.plugins';
|
|
import { AuthInfo } from './sdk.classes.authinfo';
|
|
|
|
export interface IRequirementResult {
|
|
allOk: boolean;
|
|
reason: string;
|
|
}
|
|
|
|
export abstract class AAgHandler<TClaim> {
|
|
/**
|
|
* a slug that separates the handler from other handlers
|
|
*/
|
|
public abstract slug: string;
|
|
|
|
public abstract handleRequest(
|
|
authInfoArg: AuthInfo<TClaim>,
|
|
request: plugins.tsclass.network.ISimpleRequest
|
|
): Promise<plugins.tsclass.network.ISimpleResponse>;
|
|
public abstract checkReqirements(): Promise<IRequirementResult>;
|
|
|
|
/**
|
|
* start the ag-handler
|
|
*/
|
|
public abstract start(): Promise<any>;
|
|
public abstract stop(): Promise<any>;
|
|
}
|