Add Update note

This commit is contained in:
Hubert Van De Walle 2020-04-20 14:50:26 +02:00
parent 7be4acd6e9
commit 2a32cbd806

View File

@ -12,10 +12,15 @@ import io.ktor.application.call
import io.ktor.http.HttpStatusCode import io.ktor.http.HttpStatusCode
import io.ktor.request.receive import io.ktor.request.receive
import io.ktor.response.respond 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.database.Database
import me.liuwj.ktorm.dsl.* 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.Kodein
import org.kodein.di.generic.instance import org.kodein.di.generic.instance
import java.time.LocalDateTime import java.time.LocalDateTime
@ -121,8 +126,35 @@ class NotesTitleController(kodein: Kodein) : AuthCrudController("/notes/{noteTit
return@patch call.respondStatus(HttpStatusCode.BadRequest) 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)
} }
} }
} }