import { InjectRepository } from "@nestjs/typeorm";
import { Initializer } from "../initalizer.interface";
import { Role, User } from "@app/models";
import { Repository } from "typeorm";
import { UserService } from "./user.service";
import { Logger } from "@nestjs/common";
export class UserInit implements Initializer<Promise<void>> {
constructor(
@InjectRepository(User)
private userRepo: Repository<User>,
private user: UserService,
@InjectRepository(Role)
private role: Repository<Role>
){}
async run(): Promise<void> {
const role = await this.role.findOneOrFail({
where:{
name: 'admin'
}
});
if (
await this.userRepo.findOneBy({
email: 'admin@no-reply.com'
})
) {
return;
}
const user = await this.user.create(
{
email: 'admin@no-reply.com',
password: 'admin',
roleIds: [role.id],
name: 'admin',
status: 1,
},
true
);
Logger.log(`[APP]: create admin user success`);
Logger.log(`[APP]: email: ${user.email}`);
Logger.log(`[APP]: password: 'admin'`);
Logger.log('Enjoy!');
}
}