start second (or third?) reborn

This commit is contained in:
2024-02-16 13:40:47 +06:00
parent ff973e63fc
commit e98a484c4d
72 changed files with 173 additions and 200 deletions
build.gradle
client/src/androidMain
defaultAndroidSettings.gradleextensions.gradle
features
auth
client
common
server
src
jvmMain
kotlin
dev
inmo
postssystem
client
template
client
common
common
client
src
jsMain
kotlin
dev
inmo
postssystem
features
common
main
common
src
commonMain
kotlin
dev
inmo
postssystem
features
jvmMain
kotlin
dev
inmo
postssystem
features
linuxX64Main
kotlin
dev
inmo
postssystem
features
main
mingwX64Main
kotlin
dev
inmo
postssystem
features
content
binary
client
common
client
common
text
client
common
files
client
src
commonMain
kotlin
dev
inmo
postssystem
features
main
common
src
jvmMain
kotlin
dev
inmo
postssystem
features
main
posts
client
common
src
commonMain
kotlin
dev
inmo
postssystem
features
posts
common
main
server
src
jvmMain
kotlin
dev
inmo
postssystem
features
publication
client
common
roles
client
common
manager
client
common
status
client
src
commonMain
kotlin
dev
inmo
postssystem
features
main
common
template
client
common
users
client
common
build.gradle
src
commonMain
kotlin
dev
inmo
postssystem
features
users
common
jvmMain
kotlin
dev
inmo
postssystem
features
main
gradle
mppAndroidProject.gradlemppJavaProject.gradlemppJsProject.gradlemppProjectWithSerialization.gradle
publicators
simple
client
src
common
src
template
client
src
common
src
publish.gradle
services
posts
client
src
common
src
template
client
src
common
src
settings.gradle
targets/telegram
content
polls
client
src
common
src
loader
client
src
common
src
template
client
src
common
src

@ -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"/>