init commit

This commit is contained in:
Anastasia 2025-01-20 15:04:42 +03:00
parent de9ddfd0bb
commit 16ca0e8cf3
14 changed files with 130 additions and 62 deletions

View File

@ -10,6 +10,7 @@ repositories {
}
dependencies {
implementation("io.github.serpro69:kotlin-faker:2.0.0-rc.7")
testImplementation(kotlin("test"))
}

View File

@ -1,6 +1,6 @@
package Interface
import model.User
import data.features.authorize.model.User
interface AdminService {
fun removeUserById(userId: Int): Boolean

View File

@ -1,7 +1,5 @@
package Interface
import model.User
/*
Interface AuthorizeService {
fun registration(user: User):Boolean

View File

@ -1,7 +1,7 @@
package RepositoryImpl
import Interface.AdminService
import model.User
import data.features.authorize.model.User
class AdminServiceImpl : AdminService {
private val users = mutableListOf<User>()

View File

@ -0,0 +1,10 @@
package data.features.authorize
import domain.request.AuthorizeRequest
import domain.request.RegistrationRequest
import domain.response.UserPesponse
interface AuthorizeRepository {
fun auth(authorizeRequest: AuthorizeRequest): UserPesponse
fun registration(registrationRequest: RegistrationRequest): UserPesponse
}

View File

@ -0,0 +1,77 @@
package org.example.data.admin
import data.features.authorize.model.User
import domain.request.AuthorizeRequest
import domain.request.RegistrationRequest
import domain.response.UserPesponse
import io.github.serpro69.kfaker.Faker
import java.util.*
data class LocalUser(
val uuid: UUID,
var lastname: String,
var firstname: String? = null,
var email: String,
var photo: String? = null,
var password: String,
var number: String? = null,
var address: String? = null
)
val users = generateUsers(100).toMutableList()
fun generateUsers(userCount: Int): List<LocalUser>{
val localUserList = mutableListOf<LocalUser>()
val faker = Faker()
repeat(userCount){
localUserList.add(
LocalUser(
uuid = UUID.randomUUID(),
lastname = faker.name.lastName(),
firstname = faker.name.firstName(),
email = faker.random.randomString(3)+"@mail.ru",
photo= faker.random.randomString(10),
password = faker.random.randomString(8),
number = faker.phoneNumber.phoneNumber(),
address = faker.address.fullAddress()
)
)
}
return localUserList
}
fun auth(authorizeRequest: AuthorizeRequest): User {
val findUser = users.firstOrNull { it.email == authorizeRequest.email }
checkNotNull(findUser) {
"Пользователь не найден"
}
return if (findUser.password == authorizeRequest.password) User(
uuid = findUser.uuid,
firstname = findUser.firstname ?: "",
lastname = findUser.lastname,
email = findUser.email,
photo = findUser.photo ?: "",
number = findUser.number,
address = findUser.address
)
else throw IllegalArgumentException("Пароли не совпадают")
}
fun registration(registrationRequest: RegistrationRequest): User {
val user = LocalUser(
uuid = UUID.randomUUID(),
lastname = registrationRequest.lastname,
email = registrationRequest.email,
password = registrationRequest.password
)
users.add(user)
return User(
uuid = user.uuid,
firstname = user.firstname ?: "",
lastname = user.lastname,
email = user.email,
photo = user.photo ?: "",
number = user.number,
address = user.address
)
}

View File

@ -0,0 +1,18 @@
package data.features.authorize.model
import java.time.LocalDate
import java.util.UUID
open class User(
val uuid: UUID,
val firstname: String,
val lastname: String?,
var email: String,
var number: String?,
var address: String?,
var photo: String
)

View File

@ -0,0 +1,5 @@
package domain.request
data class AuthorizeRequest(
val email: String,
val password: String,)

View File

@ -0,0 +1,6 @@
package domain.request
data class RegistrationRequest (
val lastname: String,
val email: String,
val password: String,)

View File

@ -0,0 +1,11 @@
package domain.response
data class UserPesponse(
val firstname:String?,
val lastname: String?,
val email: String,
val number: String?,
val adress: String?,
val photo: String?)

View File

@ -1,14 +0,0 @@
package model
import java.time.LocalDate
class AdminUser(
userId: Int,
login: String,
password: String,
lastAuthorizeDate: LocalDate,
email: String,
phone: String
) : User(userId, login, password, lastAuthorizeDate, email, phone) {
override val role: String = "администратор"
}

View File

@ -1,14 +0,0 @@
package model
import java.time.LocalDate
class DefaultUser(
userId: Int,
login: String,
password: String,
lastAuthorizeDate: LocalDate,
email: String,
phone: String
) : User(userId, login, password, lastAuthorizeDate, email, phone) {
override val role: String = "пользователь"
}

View File

@ -1,14 +0,0 @@
package model
import java.time.LocalDate
class ManagerUser(
userId: Int,
login: String,
password: String,
lastAuthorizeDate: LocalDate,
email: String,
phone: String
) : User(userId, login, password, lastAuthorizeDate, email, phone) {
override val role: String = "менеджер"
}

View File

@ -1,16 +0,0 @@
package model
import java.time.LocalDate
open class User(
val userId: Int,
val login: String,
var password: String,
var lastAuthorizeDate: LocalDate,
var email: String,
var phone: String
) { open val role: String = "пользователь" }