33 lines
1.1 KiB
TypeScript
Executable File
33 lines
1.1 KiB
TypeScript
Executable File
import { Logger } from "@nestjs/common";
|
|
import { DataSource } from "typeorm";
|
|
|
|
import { City } from "../../src/modules/address/entities/city.entity";
|
|
import { Province } from "../../src/modules/address/entities/province.entity";
|
|
import provincesData from "../data/json/ostan.json";
|
|
import citiesData from "../data/json/shahr.json";
|
|
|
|
export const seedCityAndProvince = async (dataSource: DataSource, logger: Logger) => {
|
|
try {
|
|
const provinceRepo = dataSource.getRepository(Province);
|
|
const cityRepo = dataSource.getRepository(City);
|
|
|
|
for (const province of provincesData) {
|
|
const newProvince = provinceRepo.create({ name: province.name });
|
|
await provinceRepo.save(newProvince);
|
|
}
|
|
|
|
for (const city of citiesData) {
|
|
const province = await provinceRepo.findOne({ where: { id: city.ostan } });
|
|
if (province) {
|
|
const newCity = cityRepo.create({ name: city.name, province });
|
|
await cityRepo.save(newCity);
|
|
}
|
|
}
|
|
|
|
logger.log("City and Province seeding completed");
|
|
} catch (error) {
|
|
logger.error("Error in seeding City and Province", error);
|
|
process.exit(1);
|
|
}
|
|
};
|