34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
import { SzEmailConnector } from './email/classes.emailconnector.js';
|
|
import { SzSmsConnector } from './email/classes.smsconnector.js';
|
|
import * as plugins from './plugins.js';
|
|
|
|
export class SzPlatformClient {
|
|
public debugMode = false;
|
|
private authorizationString: string;
|
|
public typedrouter = new plugins.typedrequest.TypedRouter();
|
|
public typedsocket: plugins.typedsocket.TypedSocket;
|
|
private qenvInstance = new plugins.qenv.Qenv();
|
|
|
|
public emailConnector = new SzEmailConnector(this);
|
|
public smsConnector = new SzSmsConnector(this);
|
|
|
|
constructor(authorizationStringArg?: string) {
|
|
this.authorizationString = authorizationStringArg;
|
|
}
|
|
|
|
public async init(authorizationStringArg?: string) {
|
|
if (authorizationStringArg) this.authorizationString = authorizationStringArg;
|
|
if (!this.authorizationString) this.authorizationString = process.env.SERVEZONE_PLATFROM_AUTHORIZATION;
|
|
if (!this.authorizationString) throw new Error('authorizationString is required');
|
|
if (authorizationStringArg === 'test') {
|
|
this.debugMode = true;
|
|
return;
|
|
}
|
|
this.typedsocket = await plugins.typedsocket.TypedSocket.createClient(this.typedrouter, await this.getConnectionAddress());
|
|
}
|
|
|
|
private async getConnectionAddress() {
|
|
const connectionAddress = await this.qenvInstance.getEnvVarOnDemand('SERVEZONE_API_DOMAIN');
|
|
return connectionAddress;
|
|
}
|
|
} |