mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 00:52:50 +00:00
fix seed issue
This commit is contained in:
@@ -46,6 +46,7 @@ import { PaymentModule } from "./modules/payment/payment.module";
|
||||
import { DemoBookingsSeeder } from "./seed/demo-bookings.seeder";
|
||||
import { PricingDataSeeder } from "./seed/pricing-data.seeder";
|
||||
import { FileUploadSettingsSeeder } from "./seed/file-upload-settings.seeder";
|
||||
import { FreightPermissionKeyMigrationSeeder } from "./seed/freight-permission-key-migration.seeder";
|
||||
//New Trains, Wagons, Container and Cargo management modules
|
||||
import { TrainsModule } from "./modules/trains/trains.module";
|
||||
import { WagonsModule } from './modules/wagons/wagons.module';
|
||||
@@ -110,7 +111,15 @@ import { OverviewModule } from './modules/overview/overview.module';
|
||||
RoutesModule,
|
||||
OverviewModule,
|
||||
],
|
||||
providers: [EdrOrgSeeder, DemoUsersSeeder,FreightStaffUsersSeeder, DemoBookingsSeeder, PricingDataSeeder, FileUploadSettingsSeeder],
|
||||
providers: [
|
||||
EdrOrgSeeder,
|
||||
DemoUsersSeeder,
|
||||
FreightStaffUsersSeeder,
|
||||
DemoBookingsSeeder,
|
||||
PricingDataSeeder,
|
||||
FileUploadSettingsSeeder,
|
||||
FreightPermissionKeyMigrationSeeder,
|
||||
],
|
||||
})
|
||||
export class AppModule implements OnApplicationBootstrap {
|
||||
constructor(
|
||||
@@ -121,9 +130,11 @@ export class AppModule implements OnApplicationBootstrap {
|
||||
private readonly demoBookingsSeeder: DemoBookingsSeeder,
|
||||
private readonly pricingDataSeeder: PricingDataSeeder,
|
||||
private readonly fileUploadSettingsSeeder: FileUploadSettingsSeeder,
|
||||
private readonly freightPermissionKeyMigrationSeeder: FreightPermissionKeyMigrationSeeder,
|
||||
) { }
|
||||
|
||||
async onApplicationBootstrap() {
|
||||
await this.freightPermissionKeyMigrationSeeder.run();
|
||||
await this.seeder.run();
|
||||
await this.edrOrgSeeder.run();
|
||||
await this.demoUsersSeeder.run();
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { Permission } from '@tria-plc/iamapi-common';
|
||||
import { DataSource } from 'typeorm';
|
||||
|
||||
/** Renamed rule-engine resources: old key -> new key (same permission id). */
|
||||
const PERMISSION_KEY_RENAMES: ReadonlyArray<{ from: string; to: string }> = [
|
||||
{
|
||||
from: 'edr_freight_app:rule_engine:priority_rules:view',
|
||||
to: 'edr_freight_app:rule_engine:priority_configs:view',
|
||||
},
|
||||
{
|
||||
from: 'edr_freight_app:rule_engine:priority_rules:manage',
|
||||
to: 'edr_freight_app:rule_engine:priority_configs:manage',
|
||||
},
|
||||
];
|
||||
|
||||
@Injectable()
|
||||
export class FreightPermissionKeyMigrationSeeder {
|
||||
private readonly logger = new Logger(FreightPermissionKeyMigrationSeeder.name);
|
||||
|
||||
constructor(private readonly dataSource: DataSource) {}
|
||||
|
||||
async run() {
|
||||
const permissionRepository = this.dataSource.getRepository(Permission);
|
||||
|
||||
for (const { from, to } of PERMISSION_KEY_RENAMES) {
|
||||
const existing = await permissionRepository.findOne({
|
||||
where: { key: from },
|
||||
select: { id: true, key: true },
|
||||
});
|
||||
|
||||
if (!existing) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const targetExists = await permissionRepository.existsBy({ key: to });
|
||||
if (targetExists) {
|
||||
this.logger.warn(
|
||||
`Skipping permission key rename ${from} -> ${to}: target key already exists`,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
await permissionRepository.update({ id: existing.id }, { key: to });
|
||||
this.logger.log(`Renamed permission key ${from} -> ${to}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user