add logic for registration
This commit is contained in:
parent
29ee9377ac
commit
3ffa81cb9b
@ -1,9 +1,10 @@
|
|||||||
package org.example.data
|
package org.example.data
|
||||||
|
|
||||||
import org.example.data.model.UserDTO
|
import org.example.data.model.UserDTO
|
||||||
|
import org.example.domain.request.RegistrationRequest
|
||||||
|
|
||||||
interface UserRepository {
|
interface UserRepository {
|
||||||
fun addUser()
|
fun addUser(registrationRequest: RegistrationRequest): UserDTO
|
||||||
fun removeUserById(userId: Int): Boolean
|
fun removeUserById(userId: Int): Boolean
|
||||||
fun updateUserById(userId: Int, updatedUser: UserDTO): UserDTO
|
fun updateUserById(userId: Int, updatedUser: UserDTO): UserDTO
|
||||||
fun getAllUsers(): List<UserDTO>
|
fun getAllUsers(): List<UserDTO>
|
||||||
|
@ -1,12 +1,21 @@
|
|||||||
package org.example.data
|
package org.example.data
|
||||||
|
|
||||||
import org.example.data.model.UserDTO
|
import org.example.data.model.UserDTO
|
||||||
|
import org.example.domain.request.RegistrationRequest
|
||||||
|
|
||||||
class UserRepositoryImpl: UserRepository {
|
class UserRepositoryImpl: UserRepository {
|
||||||
private val userSource: MutableList<UserDTO> = userList.toMutableList()
|
private val userSource: MutableList<UserDTO> = userList.toMutableList()
|
||||||
|
|
||||||
override fun addUser() {
|
|
||||||
TODO("Not yet implemented")
|
override fun addUser(registrationRequest: RegistrationRequest): UserDTO {
|
||||||
|
val newUser = UserDTO(
|
||||||
|
userId = userSource.size + 1,
|
||||||
|
email = registrationRequest.email,
|
||||||
|
firstName = registrationRequest.firstName,
|
||||||
|
password = registrationRequest.password
|
||||||
|
)
|
||||||
|
userSource.add(newUser)
|
||||||
|
return newUser
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun removeUserById(userId: Int): Boolean {
|
override fun removeUserById(userId: Int): Boolean {
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package org.example.domain
|
package org.example.domain
|
||||||
|
|
||||||
import org.example.domain.request.AuthorizeRequest
|
import org.example.domain.request.AuthorizeRequest
|
||||||
|
import org.example.domain.request.RegistrationRequest
|
||||||
import org.example.domain.response.UserResponse
|
import org.example.domain.response.UserResponse
|
||||||
|
|
||||||
interface UserUseCase {
|
interface UserUseCase {
|
||||||
fun authorize(authorizeRequest: AuthorizeRequest): UserResponse
|
fun authorize(authorizeRequest: AuthorizeRequest): UserResponse
|
||||||
fun registration()
|
fun registration(registrationRequest: RegistrationRequest): UserResponse
|
||||||
fun changePassword()
|
fun changePassword()
|
||||||
fun changeProfile()
|
fun changeProfile()
|
||||||
}
|
}
|
@ -2,6 +2,7 @@ package org.example.domain
|
|||||||
|
|
||||||
import org.example.data.UserRepository
|
import org.example.data.UserRepository
|
||||||
import org.example.domain.request.AuthorizeRequest
|
import org.example.domain.request.AuthorizeRequest
|
||||||
|
import org.example.domain.request.RegistrationRequest
|
||||||
import org.example.domain.response.UserResponse
|
import org.example.domain.response.UserResponse
|
||||||
|
|
||||||
class UserUseCaseImpl(private val userRepository: UserRepository): UserUseCase {
|
class UserUseCaseImpl(private val userRepository: UserRepository): UserUseCase {
|
||||||
@ -19,10 +20,19 @@ class UserUseCaseImpl(private val userRepository: UserRepository): UserUseCase {
|
|||||||
return UserDtoToUserResponse(findUser)
|
return UserDtoToUserResponse(findUser)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun registration() {
|
override fun registration(registrationRequest: RegistrationRequest): UserResponse {
|
||||||
TODO("Not yet implemented")
|
//уникальность почты
|
||||||
|
val isUnique = userRepository.getAllUsers().firstOrNull{
|
||||||
|
it.email == registrationRequest.email
|
||||||
|
} == null
|
||||||
|
require(isUnique){
|
||||||
|
"Такая почта уже существует"
|
||||||
|
}
|
||||||
|
userRepository.addUser()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
override fun changePassword() {
|
override fun changePassword() {
|
||||||
TODO("Not yet implemented")
|
TODO("Not yet implemented")
|
||||||
}
|
}
|
||||||
|
7
src/main/kotlin/domain/request/RegistrationRequest.kt
Normal file
7
src/main/kotlin/domain/request/RegistrationRequest.kt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
package org.example.domain.request
|
||||||
|
|
||||||
|
data class RegistrationRequest (
|
||||||
|
val email: String,
|
||||||
|
val password: String,
|
||||||
|
val firstName: String
|
||||||
|
)
|
@ -6,10 +6,12 @@ import org.example.domain.response.UserResponse
|
|||||||
|
|
||||||
class UserUI(private val userUseCase: UserUseCase) {
|
class UserUI(private val userUseCase: UserUseCase) {
|
||||||
fun authorize(){
|
fun authorize(){
|
||||||
|
println("Введите почту")
|
||||||
val email = readlnOrNull()
|
val email = readlnOrNull()
|
||||||
checkNotNull(email){
|
checkNotNull(email){
|
||||||
"Почта не должна отсутствовать"
|
"Почта не должна отсутствовать"
|
||||||
}
|
}
|
||||||
|
println("Введите пароль")
|
||||||
val password = readlnOrNull()
|
val password = readlnOrNull()
|
||||||
checkNotNull(password){
|
checkNotNull(password){
|
||||||
"Пароль не должен отсутствовать"
|
"Пароль не должен отсутствовать"
|
||||||
@ -18,10 +20,10 @@ class UserUI(private val userUseCase: UserUseCase) {
|
|||||||
email = email,
|
email = email,
|
||||||
password = password,)
|
password = password,)
|
||||||
val user = userUseCase.authorize(authorizeRequest)
|
val user = userUseCase.authorize(authorizeRequest)
|
||||||
println(UserResponseToString(user))
|
println(userResponseToString(user))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun UserResponseToString(userResponse: UserResponse): String{
|
private fun userResponseToString(userResponse: UserResponse): String{
|
||||||
val printOutput = StringBuilder()
|
val printOutput = StringBuilder()
|
||||||
printOutput.append("Ваша почта ${userResponse.email}")
|
printOutput.append("Ваша почта ${userResponse.email}")
|
||||||
printOutput.appendLine()
|
printOutput.appendLine()
|
||||||
|
Loading…
Reference in New Issue
Block a user