UNPKG

create-chuntianxiaozhu

Version:

春天小猪模板工具

58 lines (50 loc) 1.44 kB
import { Injectable } from '@nestjs/common'; import { AppUser } from './entity/user.entity'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; @Injectable() export class UserService { constructor( @InjectRepository(AppUser) private userRepository: Repository<AppUser>, ) {} findUserByEmail(email: string) { return this.userRepository.findOne({ where: { email, }, }); } save(user: Partial<AppUser>) { return this.userRepository.save(new AppUser(user)); } updateById(id: number, user: Partial<AppUser>) { return this.userRepository.update(id, new AppUser(user)); } findById(id: number) { return this.userRepository.findOneBy({ id, }); } async addRole(id: number, roleName: string, user?: AppUser) { if (!user) { user = await this.findById(id); } this.updateById(id, { roles: user.roles ? `${user.roles},${roleName}` : roleName, }); } async removeRole(id: number, roleName: string, user?: AppUser) { if (!user) { user = await this.findById(id); } const roles = user.roles || ''; const formatRoles = roles + ','; const formatRoleName = roleName + ','; if (formatRoles.indexOf(formatRoleName) > -1) { formatRoles.replaceAll(formatRoleName, ''); } this.updateById(id, { roles: formatRoles.slice(0, formatRoles.length - 1), }); } }