diff --git a/src/main/kotlin/com/cubetiqs/graphql/demo/mutation/UserMutation.kt b/src/main/kotlin/com/cubetiqs/graphql/demo/mutation/UserMutation.kt index d340a7d..32ce2a7 100644 --- a/src/main/kotlin/com/cubetiqs/graphql/demo/mutation/UserMutation.kt +++ b/src/main/kotlin/com/cubetiqs/graphql/demo/mutation/UserMutation.kt @@ -16,6 +16,8 @@ class UserMutation @Autowired constructor( ) : GraphQLMutationResolver { @Transactional(propagation = Propagation.REQUIRES_NEW) fun createUser(input: UserInput): User { + if (userRepository.existsAllByUsername(input.username ?: "")) throw Exception("Username has been already existed!") + val user = UserMapper.fromInputToUser(input) return userRepository.save(user) } diff --git a/src/main/kotlin/com/cubetiqs/graphql/demo/repository/UserRepository.kt b/src/main/kotlin/com/cubetiqs/graphql/demo/repository/UserRepository.kt index 80678a8..a1800d4 100644 --- a/src/main/kotlin/com/cubetiqs/graphql/demo/repository/UserRepository.kt +++ b/src/main/kotlin/com/cubetiqs/graphql/demo/repository/UserRepository.kt @@ -11,4 +11,7 @@ import org.springframework.stereotype.Repository interface UserRepository : JpaRepository { @Query("select u from User u where u.enabled = true") fun queryAllByEnabledIsTrue(pageable: Pageable): Page + + @Query("select (count(u) > 0) from User u where u.username = ?1") + fun existsAllByUsername(username: String): Boolean } \ No newline at end of file