add logic for changepassword

This commit is contained in:
KP9lKk 2025-01-27 13:51:16 +03:00
parent 561a30edc0
commit 628fb039d6
7 changed files with 41 additions and 9 deletions

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>

View File

@ -9,6 +9,7 @@ fun main() {
val userRepository = UserRepositoryImpl() val userRepository = UserRepositoryImpl()
val userUseCase = UserUseCaseImpl(userRepository) val userUseCase = UserUseCaseImpl(userRepository)
val userUI = UserUI(userUseCase) val userUI = UserUI(userUseCase)
userUI.registration() userUI.authorize()
userUI.changePassword()
userUI.authorize() userUI.authorize()
} }

View File

@ -23,7 +23,8 @@ class UserRepositoryImpl: UserRepository {
} }
override fun updateUserById(userId: Int, updatedUser: UserDTO): UserDTO { override fun updateUserById(userId: Int, updatedUser: UserDTO): UserDTO {
val oldUser = userSource.first { it.userId == userId } val oldUser = userSource.firstOrNull { it.userId == userId }
checkNotNull(oldUser)
oldUser.phone = updatedUser.phone oldUser.phone = updatedUser.phone
oldUser.address = updatedUser.address oldUser.address = updatedUser.address
oldUser.firstName = updatedUser.firstName oldUser.firstName = updatedUser.firstName
@ -33,10 +34,10 @@ class UserRepositoryImpl: UserRepository {
return oldUser return oldUser
} }
override fun getAllUsers(): List<UserDTO> = userList override fun getAllUsers(): List<UserDTO> = userSource
override fun findUserById(userId: Int): UserDTO { override fun findUserById(userId: Int): UserDTO {
val findUser = userList.firstOrNull { it.userId == userId } val findUser = userSource.firstOrNull { it.userId == userId }
checkNotNull(findUser) checkNotNull(findUser)
return findUser return findUser
} }

View File

@ -1,12 +1,13 @@
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.ChangePasswordRequest
import org.example.domain.request.RegistrationRequest 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(registrationRequest: RegistrationRequest): UserResponse fun registration(registrationRequest: RegistrationRequest): UserResponse
fun changePassword() fun changePassword(changePasswordRequest: ChangePasswordRequest)
fun changeProfile() fun changeProfile()
} }

View File

@ -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.ChangePasswordRequest
import org.example.domain.request.RegistrationRequest import org.example.domain.request.RegistrationRequest
import org.example.domain.response.UserResponse import org.example.domain.response.UserResponse
@ -32,12 +33,15 @@ class UserUseCaseImpl(private val userRepository: UserRepository): UserUseCase {
return UserDtoToUserResponse(newUser) return UserDtoToUserResponse(newUser)
} }
override fun changePassword(changePasswordRequest: ChangePasswordRequest) {
val updatedUser = userRepository.findUserById(changePasswordRequest.userId)
override fun changePassword() { updatedUser.password = changePasswordRequest.newPassword
TODO("Not yet implemented") userRepository.updateUserById(changePasswordRequest.userId, updatedUser)
} }
override fun changeProfile() { override fun changeProfile() {
TODO("Not yet implemented") TODO("Not yet implemented")
} }

View File

@ -0,0 +1,6 @@
package org.example.domain.request
data class ChangePasswordRequest(
val userId: Int,
val newPassword: String
)

View File

@ -2,10 +2,12 @@ package org.example.ui
import org.example.domain.UserUseCase import org.example.domain.UserUseCase
import org.example.domain.request.AuthorizeRequest import org.example.domain.request.AuthorizeRequest
import org.example.domain.request.ChangePasswordRequest
import org.example.domain.request.RegistrationRequest import org.example.domain.request.RegistrationRequest
import org.example.domain.response.UserResponse import org.example.domain.response.UserResponse
class UserUI(private val userUseCase: UserUseCase) { class UserUI(private val userUseCase: UserUseCase) {
var userAuthorized: UserResponse? = null
fun authorize(){ fun authorize(){
println("Введите почту") println("Введите почту")
val email = readlnOrNull() val email = readlnOrNull()
@ -21,9 +23,25 @@ class UserUI(private val userUseCase: UserUseCase) {
email = email, email = email,
password = password,) password = password,)
val user = userUseCase.authorize(authorizeRequest) val user = userUseCase.authorize(authorizeRequest)
userAuthorized = user
println(userResponseToString(user)) println(userResponseToString(user))
} }
fun changePassword(){
checkNotNull(userAuthorized){
"Вы не авторизованы"
}
println("Введите пароль")
val password = readlnOrNull()
checkNotNull(password){
"Пароль не должен отсутствовать"
}
val changePasswordRequest = ChangePasswordRequest(
userId = userAuthorized!!.userId,
newPassword = password
)
userUseCase.changePassword(changePasswordRequest)
}
fun registration(){ fun registration(){
println("Введите имя") println("Введите имя")
val firstName = readlnOrNull() val firstName = readlnOrNull()