@@ -0,0 +1,3 @@
|
||||
import { RoleEnum } from "../../src/modules/users/enums/role.enum";
|
||||
|
||||
export const roles = [{ name: RoleEnum.SUPER_ADMIN }, { name: RoleEnum.ADMIN }, { name: RoleEnum.VISITOR }, { name: RoleEnum.USER }];
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import { InjectRepository } from "@nestjs/typeorm";
|
||||
import { Repository } from "typeorm";
|
||||
|
||||
import { Role } from "../entities/role.entity";
|
||||
|
||||
@Injectable()
|
||||
export class RoleRepository extends Repository<Role> {
|
||||
constructor(@InjectRepository(Role) roleRepository: Repository<Role>) {
|
||||
super(roleRepository.target, roleRepository.manager, roleRepository.queryRunner);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,28 @@
|
||||
import { BadRequestException, Injectable } from "@nestjs/common";
|
||||
import { BadRequestException, Injectable, Logger } from "@nestjs/common";
|
||||
|
||||
import { UserRepository } from "./users.repository";
|
||||
import { User } from "../entities/user.entity";
|
||||
import { UserMessage } from "../../../common/enums/message.enum";
|
||||
import { RoleRepository } from "./roles.repository";
|
||||
import { roles } from "../../../../db/seeders/role.seeder";
|
||||
|
||||
@Injectable()
|
||||
export class UsersService {
|
||||
constructor(private userRepository: UserRepository) {}
|
||||
private logger = new Logger(UsersService.name);
|
||||
constructor(
|
||||
private userRepository: UserRepository,
|
||||
private roleRepository: RoleRepository,
|
||||
) {}
|
||||
|
||||
async findOneWithEmail(email: string): Promise<User> {
|
||||
const user = await this.userRepository.findOneWithEmail(email);
|
||||
if (!user) throw new BadRequestException(UserMessage.USER_NOT_FOUND);
|
||||
return user;
|
||||
}
|
||||
|
||||
async roleSeeder() {
|
||||
const createdRoles = await this.roleRepository.insert(roles);
|
||||
this.logger.log({ createdRoles });
|
||||
return createdRoles;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Module } from "@nestjs/common";
|
||||
import { Module, OnApplicationBootstrap } from "@nestjs/common";
|
||||
import { TypeOrmModule } from "@nestjs/typeorm";
|
||||
|
||||
import { Role } from "./entities/role.entity";
|
||||
@@ -6,11 +6,17 @@ import { User } from "./entities/user.entity";
|
||||
import { UserRepository } from "./providers/users.repository";
|
||||
import { UsersService } from "./providers/users.service";
|
||||
import { UsersController } from "./users.controller";
|
||||
import { RoleRepository } from "./providers/roles.repository";
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature([User, Role])],
|
||||
providers: [UsersService, UserRepository],
|
||||
providers: [UsersService, UserRepository, RoleRepository],
|
||||
controllers: [UsersController],
|
||||
exports: [UsersService, TypeOrmModule],
|
||||
})
|
||||
export class UsersModule {}
|
||||
export class UsersModule implements OnApplicationBootstrap {
|
||||
constructor(private userService: UsersService) {}
|
||||
async onApplicationBootstrap() {
|
||||
await this.userService.roleSeeder();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user