Merge pull request #2 from Danakcorp/features/auth

chore: role seeder
This commit is contained in:
Mahyar
2025-01-20 12:49:02 +03:30
committed by GitHub
4 changed files with 38 additions and 5 deletions
+3
View File
@@ -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);
}
}
+14 -2
View File
@@ -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;
}
} }
+9 -3
View File
@@ -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();
}
}