Merge branch 'feature/delete-user-service'

This commit is contained in:
Hubert Van De Walle 2020-04-21 17:25:58 +02:00
commit 33610bfbf6
2 changed files with 18 additions and 1 deletions

View File

@ -6,7 +6,7 @@ import be.vandewalleh.tables.Notes
import io.ktor.http.*
import org.kodein.di.generic.instance
val notesService by kodein.instance<NotesService>()
private val notesService by kodein.instance<NotesService>()
fun Parameters.noteTitle(): String {
return this["noteTitle"]!!

View File

@ -1,6 +1,7 @@
package be.vandewalleh.services
import be.vandewalleh.entities.User
import be.vandewalleh.tables.Notes
import be.vandewalleh.tables.Users
import me.liuwj.ktorm.database.*
import me.liuwj.ktorm.dsl.*
@ -15,6 +16,7 @@ import java.time.LocalDateTime
*/
class UserService(override val kodein: Kodein) : KodeinAware {
private val db by instance<Database>()
private val notesService by instance<NotesService>()
/**
* returns a user ID if present or null
@ -65,6 +67,21 @@ class UserService(override val kodein: Kodein) : KodeinAware {
}
}
fun deleteUser(userId: Int) {
db.useTransaction {
val notesId = db.from(Notes)
.select(Notes.id)
.where { Notes.userId eq userId }
.map { it[Notes.userId]!! }
notesId.forEach { noteId ->
notesService.deleteNote(noteId)
}
}
db.delete(Users) { it.id eq userId }
}
}
data class UserRegistrationDto(val username: String, val email: String, val password: String)