start second (or third?) reborn
This commit is contained in:
build.gradlepublish.gradlesettings.gradle
client/src/androidMain
defaultAndroidSettings.gradleextensions.gradlefeatures
auth
client
src
commonMain
kotlin
dev
inmo
postssystem
main
common
src
server
src
jvmMain
kotlin
dev
inmo
postssystem
features
auth
server
client
template
common
client
src
common
src
commonMain
kotlin
dev
inmo
postssystem
features
common
common
jvmMain
kotlin
dev
inmo
postssystem
features
common
common
linuxX64Main
kotlin
dev
inmo
postssystem
features
common
common
main
mingwX64Main
kotlin
dev
inmo
postssystem
features
common
common
content
binary
client
src
common
src
text
files
client
src
commonMain
kotlin
dev
inmo
postssystem
features
files
main
common
src
posts
client
src
common
src
server
src
jvmMain
kotlin
dev
inmo
postssystem
features
posts
publication
roles
client
src
common
src
manager
status
client
src
common
src
template
users
client
src
common
build.gradle
src
commonMain
kotlin
dev
inmo
postssystem
features
users
common
jvmMain
kotlin
dev
inmo
postssystem
features
users
common
main
gradle
mppAndroidProject.gradlemppJavaProject.gradlemppJsProject.gradlemppProjectWithSerialization.gradlepublicators
simple
template
services
posts
template
targets/telegram
content
polls
loader
template
@ -1 +0,0 @@
|
||||
<manifest package="dev.inmo.postssystem.features.users.client"/>
|
@ -21,7 +21,3 @@ kotlin {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
android {
|
||||
disableIncludingJvmCodeInAndroidPart()
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ sealed class User : NewUser {
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class DefaultUser(
|
||||
data class RegisteredUser(
|
||||
override val id: UserId,
|
||||
override val firstName: String,
|
||||
override val lastName: String,
|
||||
|
@ -3,8 +3,7 @@ package dev.inmo.postssystem.features.users.common
|
||||
import dev.inmo.micro_utils.repos.exposed.AbstractExposedCRUDRepo
|
||||
import dev.inmo.micro_utils.repos.exposed.initTable
|
||||
import org.jetbrains.exposed.sql.*
|
||||
import org.jetbrains.exposed.sql.statements.InsertStatement
|
||||
import org.jetbrains.exposed.sql.statements.UpdateStatement
|
||||
import org.jetbrains.exposed.sql.statements.*
|
||||
|
||||
class ExposedUsersStorage(override val database: Database) : UsersStorage, AbstractExposedCRUDRepo<User, UserId, NewUser>(
|
||||
tableName = "Users"
|
||||
@ -15,11 +14,12 @@ class ExposedUsersStorage(override val database: Database) : UsersStorage, Abstr
|
||||
private val lastNameColumn = text("lastName")
|
||||
|
||||
override val primaryKey: PrimaryKey = PrimaryKey(userIdColumn)
|
||||
override val selectById: ISqlExpressionBuilder.(UserId) -> Op<Boolean> = { userIdColumn.eq(it.long) }
|
||||
override val ResultRow.asId: UserId
|
||||
get() = UserId(get(userIdColumn))
|
||||
|
||||
override val selectByIds: SqlExpressionBuilder.(List<UserId>) -> Op<Boolean> = { userIdColumn.inList(it.map { it.long }) }
|
||||
override val selectById: SqlExpressionBuilder.(UserId) -> Op<Boolean> = { userIdColumn.eq(it.long) }
|
||||
override val ResultRow.asObject: User
|
||||
get() = DefaultUser(
|
||||
get() = RegisteredUser(
|
||||
get(userIdColumn).userId,
|
||||
get(firstNameColumn),
|
||||
get(lastNameColumn),
|
||||
@ -36,13 +36,13 @@ class ExposedUsersStorage(override val database: Database) : UsersStorage, Abstr
|
||||
it[lastNameColumn] = value.lastName
|
||||
}
|
||||
|
||||
override fun update(id: UserId, value: NewUser, it: UpdateStatement) {
|
||||
override fun update(id: UserId?, value: NewUser, it: UpdateBuilder<Int>) {
|
||||
it[usernameColumn] = value.username.string
|
||||
it[firstNameColumn] = value.firstName
|
||||
it[lastNameColumn] = value.lastName
|
||||
}
|
||||
|
||||
override fun InsertStatement<Number>.asObject(value: NewUser): User = DefaultUser(
|
||||
override fun InsertStatement<Number>.asObject(value: NewUser): User = RegisteredUser(
|
||||
get(userIdColumn).userId,
|
||||
get(firstNameColumn),
|
||||
get(lastNameColumn),
|
||||
|
@ -1 +0,0 @@
|
||||
<manifest package="dev.inmo.postssystem.features.users.common"/>
|
Reference in New Issue
Block a user