mirror of
https://github.com/CaramelFur/Picsur.git
synced 2025-11-15 16:05:49 +01:00
Add demo mode
This commit is contained in:
20
backend/src/managers/demo/demomanager.module.ts
Normal file
20
backend/src/managers/demo/demomanager.module.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { Module, OnModuleInit } from '@nestjs/common';
|
||||
import { ImageDBModule } from '../../collections/imagedb/imagedb.module';
|
||||
import Config from '../../env';
|
||||
import { DemoManagerService } from './demomanager.service';
|
||||
|
||||
@Module({
|
||||
imports: [ImageDBModule],
|
||||
providers: [DemoManagerService],
|
||||
})
|
||||
export class DemoManagerModule implements OnModuleInit {
|
||||
constructor(private readonly demoManagerService: DemoManagerService) {}
|
||||
|
||||
private interval: NodeJS.Timeout;
|
||||
|
||||
onModuleInit() {
|
||||
if (Config.demo.enabled) {
|
||||
setInterval(this.demoManagerService.execute, Config.demo.interval);
|
||||
}
|
||||
}
|
||||
}
|
||||
18
backend/src/managers/demo/demomanager.service.ts
Normal file
18
backend/src/managers/demo/demomanager.service.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ImageDBService } from '../../collections/imagedb/imagedb.service';
|
||||
|
||||
@Injectable()
|
||||
export class DemoManagerService {
|
||||
private readonly logger = new Logger('DemoManagerService');
|
||||
|
||||
constructor(private readonly imagesService: ImageDBService) {}
|
||||
|
||||
private async executeAsync() {
|
||||
this.logger.log('Executing demo cleanup');
|
||||
await this.imagesService.deleteAll();
|
||||
}
|
||||
|
||||
public execute() {
|
||||
this.executeAsync().catch(this.logger.error);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user