developer239/nest-rest-api

View on GitHub
src/modules/auth/user/user.repository.ts

Summary

Maintainability
A
0 mins
Test Coverage
C
78%
import { ConflictException } from '@nestjs/common'
import { Repository, EntityRepository } from 'typeorm'
import { CreateUserDTO } from 'src/modules/auth/user/user.dto'
import { User } from 'src/modules/auth/user/user.entity'

@EntityRepository(User)
export class UserRepository extends Repository<User> {
  async signUp(createDTO: CreateUserDTO): Promise<User> {
    const user = this.create()
    user.username = createDTO.username
    user.salt = createDTO.salt
    user.password = createDTO.password

    try {
      await user.save()
      return user
    } catch (error) {
      if (error.code === '23505') {
        throw new ConflictException('Username already exists')
      } else {
        throw error
      }
    }
  }
}