Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. import {Component, InternalServerErrorException} from '@nestjs/common';
  2. import { InjectRepository } from '@nestjs/typeorm';
  3. import { Repository } from 'typeorm';
  4.  
  5. import { User } from '../entities/user.entity';
  6. import { Role } from '../entities/role.entity';
  7. import { UserEditDto } from '../dto/user-edit.dto';
  8. import { Project } from '../entities/project.entity';
  9.  
  10. import { genSalt, hash } from 'bcrypt';
  11.  
  12. const saltRounds = 10;
  13.  
  14. export function generateHash(password?: string): Promise<string> {
  15. return new Promise((resolve, reject) => {
  16. genSalt(saltRounds, (err, salt) => {
  17. return hash(password, salt, (err, hash) => {
  18. if (err) {
  19. reject('Could not hash password.');
  20. }
  21. resolve(hash);
  22. });
  23. });
  24. });
  25. }
  26.  
  27. @Component()
  28. export class UsersService {
  29.  
  30. constructor(
  31. @InjectRepository(User) private userRepository: Repository<User>,
  32. @InjectRepository(Role) private roleRepository: Repository<Role>,
  33. @InjectRepository(Project) private projectRepository: Repository<Project>,
  34. ) {}
  35.  
  36. async addUser(userEditDto?: UserEditDto): Promise<User> {
  37. let hashPassword;
  38. const projects = await this.projectRepository.findByIds(userEditDto.projects);
  39. await generateHash(userEditDto.password).then((hashPass) => {
  40. hashPassword = hashPass;
  41. }).catch((err) => {
  42. throw new InternalServerErrorException(err);
  43. });
  44. const user = await Object.assign(new User(), {
  45. firstName: userEditDto.firstName,
  46. lastName: userEditDto.lastName,
  47. email: userEditDto.email,
  48. password: hashPassword,
  49. });
  50. console.log('test');
  51. console.log(userEditDto.roles);
  52. user.roles = userEditDto.roles;
  53. user.projects = projects;
  54. if (!user) {
  55. return null;
  56. }
  57.  
  58. return this.userRepository.save(user);
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement