opendata/ts/classes.main.opendata.ts

37 lines
1.3 KiB
TypeScript
Raw Normal View History

2023-11-14 16:15:11 +01:00
import { BusinessRecord } from './classes.businessrecord.js';
import { HandelsRegister } from './classes.handelsregister.js';
import { JsonlDataProcessor } from './classes.jsonldata.js';
2023-11-14 16:15:11 +01:00
import * as paths from './paths.js';
import * as plugins from './plugins.js';
export class OpenData {
public db: plugins.smartdata.SmartdataDb;
2023-11-14 16:15:11 +01:00
private serviceQenv = new plugins.qenv.Qenv(paths.packageDir, paths.nogitDir);
public jsonLDataProcessor: JsonlDataProcessor;
public handelsregister: HandelsRegister;
2023-11-14 16:15:11 +01:00
public CBusinessRecord = plugins.smartdata.setDefaultManagerForDoc(this, BusinessRecord);
public async start() {
this.db = new plugins.smartdata.SmartdataDb({
mongoDbUrl: await this.serviceQenv.getEnvVarOnDemand('MONGODB_URL'),
mongoDbName: await this.serviceQenv.getEnvVarOnDemand('MONGODB_NAME'),
mongoDbUser: await this.serviceQenv.getEnvVarOnDemand('MONGODB_USER'),
mongoDbPass: await this.serviceQenv.getEnvVarOnDemand('MONGODB_PASS'),
});
await this.db.init();
this.jsonLDataProcessor = new JsonlDataProcessor(this);
this.handelsregister = new HandelsRegister(this);
await this.handelsregister.start();
}
public async buildInitialDb() {
await this.jsonLDataProcessor.processDataFromUrl();
}
public async stop() {
await this.db.close();
await this.handelsregister.stop();
2023-11-14 16:15:11 +01:00
}
}