62 lines
2.3 KiB
TypeScript
62 lines
2.3 KiB
TypeScript
|
|
import * as plugins from './plugins.js';
|
||
|
|
import * as paths from './paths.js';
|
||
|
|
import { logger } from './logging.js';
|
||
|
|
|
||
|
|
import { JwtManager } from './classes.jwtmanager.js';
|
||
|
|
import { LoginSessionManager } from './classes.loginsessionmanager.js';
|
||
|
|
import { RegistrationSessionManager } from './classes.registrationsessionmanager.js';
|
||
|
|
import { ReceptionServer } from './classes.receptionserver.js';
|
||
|
|
import { ReceptionDb } from './classes.receptiondb.js';
|
||
|
|
import { ReceptionMailer } from './classes.receptionmailer.js';
|
||
|
|
import { UserManager } from './classes.usermanager.js';
|
||
|
|
import { ApiTokenManager } from './classes.apitokenmanager.js';
|
||
|
|
import { ReceptionHousekeeping } from './classes.housekeeping.js';
|
||
|
|
import { OrganizationManager } from './classes.organizationmanager.js';
|
||
|
|
import { RoleManager } from './classes.rolemanager.js';
|
||
|
|
import { BillingPlanManager } from './classes.billingplanmanager.js';
|
||
|
|
|
||
|
|
export class Reception {
|
||
|
|
public projectinfoNpm = new plugins.projectinfo.ProjectinfoNpm(paths.packageDir);
|
||
|
|
public typedrouter = new plugins.typedrequest.TypedRouter();
|
||
|
|
public serviceQenv = new plugins.qenv.Qenv('./', './.nogit');
|
||
|
|
public szPlatformClient = new plugins.szPlatformClient.SzPlatformClient();
|
||
|
|
public db = new ReceptionDb(this);
|
||
|
|
|
||
|
|
// server
|
||
|
|
public serviceServer = new ReceptionServer(this);
|
||
|
|
|
||
|
|
// managers
|
||
|
|
public jwtManager = new JwtManager(this);
|
||
|
|
public loginSessionManager = new LoginSessionManager(this);
|
||
|
|
public registrationSessionManager = new RegistrationSessionManager(this);
|
||
|
|
public apitokenManager = new ApiTokenManager(this);
|
||
|
|
public receptionMailer = new ReceptionMailer(this);
|
||
|
|
public userManager = new UserManager(this);
|
||
|
|
public organizationmanager = new OrganizationManager(this);
|
||
|
|
public roleManager = new RoleManager(this);
|
||
|
|
public billingPlanManager = new BillingPlanManager(this);
|
||
|
|
housekeeping = new ReceptionHousekeeping(this);
|
||
|
|
|
||
|
|
constructor(public databaseName?: string) {}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* starts the reception instance
|
||
|
|
*/
|
||
|
|
public async start() {
|
||
|
|
logger.log('info', 'starting reception');
|
||
|
|
await this.db.start(this.databaseName);
|
||
|
|
await this.jwtManager.start();
|
||
|
|
await this.serviceServer.start();
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* stops the reception instance
|
||
|
|
*/
|
||
|
|
public async stop() {
|
||
|
|
await this.housekeeping.stop();
|
||
|
|
await this.serviceServer.stop();
|
||
|
|
console.log('stopped serviceserver!');
|
||
|
|
await this.db.stop();
|
||
|
|
}
|
||
|
|
}
|