From 95811f5788e622b0e5f18ee72aaa258f2e500968 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Tue, 21 Apr 2020 17:39:14 +0200 Subject: [PATCH 1/2] Add migration --- .../V7__Update_constraints_cascade_delete.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 api/resources/db/migration/V7__Update_constraints_cascade_delete.sql diff --git a/api/resources/db/migration/V7__Update_constraints_cascade_delete.sql b/api/resources/db/migration/V7__Update_constraints_cascade_delete.sql new file mode 100644 index 0000000..48bb1f5 --- /dev/null +++ b/api/resources/db/migration/V7__Update_constraints_cascade_delete.sql @@ -0,0 +1,19 @@ +-- ON DELETE -> CASCADE + +ALTER TABLE `Notes` + DROP CONSTRAINT `Notes_ibfk_1`; + +ALTER TABLE `Notes` + ADD FOREIGN KEY (`user_id`) REFERENCES `Users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT; + +ALTER TABLE `Chapters` + DROP CONSTRAINT `Chapters_ibfk_1`; + +ALTER TABLE `Chapters` + ADD FOREIGN KEY (`note_id`) REFERENCES `Notes` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT; + +ALTER TABLE `Tags` + DROP CONSTRAINT `Tags_ibfk_1`; + +ALTER TABLE `Tags` + ADD FOREIGN KEY (`note_id`) REFERENCES `Notes` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT; \ No newline at end of file From 9337586b90be6e568d3daa5aca44da6fa0bc76fd Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Tue, 21 Apr 2020 17:46:08 +0200 Subject: [PATCH 2/2] Don't need this anymore --- api/src/services/NotesService.kt | 2 -- api/src/services/UserService.kt | 14 +------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/api/src/services/NotesService.kt b/api/src/services/NotesService.kt index 3df50f1..0b20fe5 100644 --- a/api/src/services/NotesService.kt +++ b/api/src/services/NotesService.kt @@ -109,8 +109,6 @@ class NotesService(override val kodein: Kodein) : KodeinAware { fun deleteNote(noteId: Int): Unit = db.useTransaction { - db.delete(Tags) { it.noteId eq noteId } - db.delete(Chapters) { it.noteId eq noteId } db.delete(Notes) { it.id eq noteId } } } diff --git a/api/src/services/UserService.kt b/api/src/services/UserService.kt index 2b98ede..5836e3f 100644 --- a/api/src/services/UserService.kt +++ b/api/src/services/UserService.kt @@ -1,7 +1,6 @@ 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.* @@ -16,7 +15,6 @@ import java.time.LocalDateTime */ class UserService(override val kodein: Kodein) : KodeinAware { private val db by instance() - private val notesService by instance() /** * returns a user ID if present or null @@ -69,19 +67,9 @@ 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 } } - - db.delete(Users) { it.id eq userId } } - } data class UserRegistrationDto(val username: String, val email: String, val password: String) \ No newline at end of file