From fced92e1ccfe1f9d2643ffd2d19f449a8be2b95c Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Tue, 22 Sep 2020 23:06:34 +0000 Subject: [PATCH] fix(core): update --- test/test.ts | 10 +++++++++- ts/sdk.classes.agenvironment.ts | 4 ++-- ts/sdk.classes.aghandler.ts | 7 +++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/test/test.ts b/test/test.ts index 2cc64dd..5bd5b8a 100644 --- a/test/test.ts +++ b/test/test.ts @@ -8,6 +8,7 @@ tap.test('should create a valid Handler', async () => { class MyHandler extends sdk.AAgHandler { public slug: 'testapi'; public typedrouter = new TypedRouter(); + public async checkReqirements() { return { allOk: true, @@ -27,7 +28,14 @@ tap.test('should create a valid Handler', async () => { } } - const myHandlerInstance = new MyHandler(); + // tslint:disable-next-line: max-classes-per-file + class AgEnvironement extends sdk.AgEnvironment { + public async getEnvVar(nameArg: string) { + return ''; + } + } + + const myHandlerInstance = new MyHandler(new AgEnvironement()); expect(myHandlerInstance).to.be.instanceOf(sdk.AAgHandler); }); diff --git a/ts/sdk.classes.agenvironment.ts b/ts/sdk.classes.agenvironment.ts index ae34fdd..538a5b5 100644 --- a/ts/sdk.classes.agenvironment.ts +++ b/ts/sdk.classes.agenvironment.ts @@ -3,6 +3,6 @@ import * as plugins from './sdk.plugins'; /** * AgEnvironment handles the provision of environment variables to handlers */ -export class AgEnvironment { - +export abstract class AgEnvironment { + public abstract async getEnvVar(envVarName: string): Promise; } \ No newline at end of file diff --git a/ts/sdk.classes.aghandler.ts b/ts/sdk.classes.aghandler.ts index 0c7633d..e463839 100644 --- a/ts/sdk.classes.aghandler.ts +++ b/ts/sdk.classes.aghandler.ts @@ -1,5 +1,6 @@ import * as plugins from './sdk.plugins'; import { AuthInfo } from './sdk.classes.authinfo'; +import { AgEnvironment } from './sdk.classes.agenvironment'; export interface IRequirementResult { allOk: boolean; @@ -7,6 +8,8 @@ export interface IRequirementResult { } export abstract class AAgHandler { + public agEnvironment: AgEnvironment; + /** * a slug that separates the handler from other handlers */ @@ -14,6 +17,10 @@ export abstract class AAgHandler { public abstract typedrouter: plugins.typedrequest.TypedRouter; public abstract checkRequirements(): Promise; + constructor(agEnvironmentArg: AgEnvironment) { + this.agEnvironment = agEnvironmentArg; + }; + /** * start the ag-handler */