mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-27 21:04:55 +00:00
finished add default icon for scene
This commit is contained in:
@ -18,6 +18,8 @@ import { RegionSeeder } from './services/regions.seeder';
|
||||
import { RegionRepository } from '../modules/region/repositories';
|
||||
import { TimeZoneSeeder } from './services/timezone.seeder';
|
||||
import { TimeZoneRepository } from '../modules/timezone/repositories';
|
||||
import { SceneIconSeeder } from './services/scene.icon.seeder';
|
||||
import { SceneIconRepository } from '../modules/scene/repositories';
|
||||
@Global()
|
||||
@Module({
|
||||
providers: [
|
||||
@ -35,6 +37,8 @@ import { TimeZoneRepository } from '../modules/timezone/repositories';
|
||||
RegionRepository,
|
||||
TimeZoneSeeder,
|
||||
TimeZoneRepository,
|
||||
SceneIconSeeder,
|
||||
SceneIconRepository,
|
||||
],
|
||||
exports: [SeederService],
|
||||
controllers: [],
|
||||
|
||||
38
libs/common/src/seed/services/scene.icon.seeder.ts
Normal file
38
libs/common/src/seed/services/scene.icon.seeder.ts
Normal file
@ -0,0 +1,38 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { SceneIconRepository } from '@app/common/modules/scene/repositories';
|
||||
import { SceneIconType } from '@app/common/constants/secne-icon-type.enum';
|
||||
import { defaultSceneIcon } from '@app/common/constants/default.scene.icon';
|
||||
|
||||
@Injectable()
|
||||
export class SceneIconSeeder {
|
||||
constructor(private readonly sceneIconRepository: SceneIconRepository) {}
|
||||
|
||||
async createSceneDefaultIconIfNotFound(): Promise<void> {
|
||||
try {
|
||||
const defaultSceneIconData = await this.sceneIconRepository.find({
|
||||
where: { iconType: SceneIconType.Default },
|
||||
});
|
||||
|
||||
if (defaultSceneIconData.length <= 0) {
|
||||
console.log('Creating default scene icon...');
|
||||
|
||||
await this.createDefaultSceneIcon();
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Error while checking default scene icon:', err);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
private async createDefaultSceneIcon(): Promise<void> {
|
||||
try {
|
||||
await this.sceneIconRepository.save({
|
||||
icon: defaultSceneIcon,
|
||||
iconType: SceneIconType.Default,
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error while creating default scene icon:', err);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,7 @@ import { SpaceTypeSeeder } from './space.type.seeder';
|
||||
import { SuperAdminSeeder } from './supper.admin.seeder';
|
||||
import { RegionSeeder } from './regions.seeder';
|
||||
import { TimeZoneSeeder } from './timezone.seeder';
|
||||
import { SceneIconSeeder } from './scene.icon.seeder';
|
||||
@Injectable()
|
||||
export class SeederService {
|
||||
constructor(
|
||||
@ -14,6 +15,7 @@ export class SeederService {
|
||||
private readonly regionSeeder: RegionSeeder,
|
||||
private readonly timeZoneSeeder: TimeZoneSeeder,
|
||||
private readonly superAdminSeeder: SuperAdminSeeder,
|
||||
private readonly sceneIconSeeder: SceneIconSeeder,
|
||||
) {}
|
||||
|
||||
async seed() {
|
||||
@ -23,5 +25,6 @@ export class SeederService {
|
||||
await this.regionSeeder.addRegionDataIfNotFound();
|
||||
await this.timeZoneSeeder.addTimeZoneDataIfNotFound();
|
||||
await this.superAdminSeeder.createSuperAdminIfNotFound();
|
||||
await this.sceneIconSeeder.createSceneDefaultIconIfNotFound();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user