From 2a32cbd806a3f49a8f68f9e1a6df82a208f48e16 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Mon, 20 Apr 2020 14:50:26 +0200 Subject: [PATCH] Add Update note --- api/src/controllers/NotesTitleController.kt | 36 +++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/api/src/controllers/NotesTitleController.kt b/api/src/controllers/NotesTitleController.kt index 00e82ff..c6d910e 100644 --- a/api/src/controllers/NotesTitleController.kt +++ b/api/src/controllers/NotesTitleController.kt @@ -12,10 +12,15 @@ import io.ktor.application.call import io.ktor.http.HttpStatusCode import io.ktor.request.receive import io.ktor.response.respond -import io.ktor.routing.* +import io.ktor.routing.Route +import io.ktor.routing.get +import io.ktor.routing.patch +import io.ktor.routing.post import me.liuwj.ktorm.database.Database import me.liuwj.ktorm.dsl.* -import me.liuwj.ktorm.entity.* +import me.liuwj.ktorm.entity.add +import me.liuwj.ktorm.entity.find +import me.liuwj.ktorm.entity.sequenceOf import org.kodein.di.Kodein import org.kodein.di.generic.instance import java.time.LocalDateTime @@ -121,8 +126,35 @@ class NotesTitleController(kodein: Kodein) : AuthCrudController("/notes/{noteTit return@patch call.respondStatus(HttpStatusCode.BadRequest) } + val noteId = call.requestedNoteId() + ?: return@patch call.respondStatus(HttpStatusCode.NotFound) + db.useTransaction { + if (requestedChanges.title != null) { + db.update(Notes) { + it.title to requestedChanges.title + where { it.id eq noteId } + } + } + if (requestedChanges.tags != null) { + // delete all tags + db.delete(Tags) { + it.noteId eq noteId + } + + // put new ones + requestedChanges.tags.forEach { tagName -> + db.insert(Tags) { + it.name to tagName + it.noteId to noteId + } + } + } + + } + + call.respondStatus(HttpStatusCode.OK) } } } \ No newline at end of file