@@ -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 { UserRepository } from "./users.repository";
|
||||||
import { User } from "../entities/user.entity";
|
import { User } from "../entities/user.entity";
|
||||||
import { UserMessage } from "../../../common/enums/message.enum";
|
import { UserMessage } from "../../../common/enums/message.enum";
|
||||||
|
import { RoleRepository } from "./roles.repository";
|
||||||
|
import { roles } from "../../../../db/seeders/role.seeder";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class UsersService {
|
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> {
|
async findOneWithEmail(email: string): Promise<User> {
|
||||||
const user = await this.userRepository.findOneWithEmail(email);
|
const user = await this.userRepository.findOneWithEmail(email);
|
||||||
if (!user) throw new BadRequestException(UserMessage.USER_NOT_FOUND);
|
if (!user) throw new BadRequestException(UserMessage.USER_NOT_FOUND);
|
||||||
return user;
|
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 { TypeOrmModule } from "@nestjs/typeorm";
|
||||||
|
|
||||||
import { Role } from "./entities/role.entity";
|
import { Role } from "./entities/role.entity";
|
||||||
@@ -6,11 +6,17 @@ import { User } from "./entities/user.entity";
|
|||||||
import { UserRepository } from "./providers/users.repository";
|
import { UserRepository } from "./providers/users.repository";
|
||||||
import { UsersService } from "./providers/users.service";
|
import { UsersService } from "./providers/users.service";
|
||||||
import { UsersController } from "./users.controller";
|
import { UsersController } from "./users.controller";
|
||||||
|
import { RoleRepository } from "./providers/roles.repository";
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forFeature([User, Role])],
|
imports: [TypeOrmModule.forFeature([User, Role])],
|
||||||
providers: [UsersService, UserRepository],
|
providers: [UsersService, UserRepository, RoleRepository],
|
||||||
controllers: [UsersController],
|
controllers: [UsersController],
|
||||||
exports: [UsersService, TypeOrmModule],
|
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