From 468e2dee6fdbb928baf88e88e8464b3b179ef50f Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Thu, 23 Apr 2020 00:22:34 +0200 Subject: [PATCH 1/2] Add tags request to NotesService --- api/src/services/NotesService.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api/src/services/NotesService.kt b/api/src/services/NotesService.kt index 0b20fe5..1f31991 100644 --- a/api/src/services/NotesService.kt +++ b/api/src/services/NotesService.kt @@ -111,6 +111,12 @@ class NotesService(override val kodein: Kodein) : KodeinAware { db.useTransaction { db.delete(Notes) { it.id eq noteId } } + + fun getTags(userId: Int): List = db.from(Tags) + .leftJoin(Notes, on = Tags.noteId eq Notes.id) + .select(Tags.name) + .where { Notes.userId eq userId } + .map { it[Tags.name]!! } } data class ChaptersDTO(val title: String, val content: String) From b34beda535e83b409e2013735f4c567e57992370 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Thu, 23 Apr 2020 00:23:16 +0200 Subject: [PATCH 2/2] Add /tags --- api/src/routing/Routes.kt | 1 + api/src/routing/TagController.kt | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 api/src/routing/TagController.kt diff --git a/api/src/routing/Routes.kt b/api/src/routing/Routes.kt index 7f0a709..da82d16 100644 --- a/api/src/routing/Routes.kt +++ b/api/src/routing/Routes.kt @@ -9,4 +9,5 @@ fun Routing.registerRoutes(kodein: Kodein) { notes(kodein) title(kodein) chapters(kodein) + tags(kodein) } \ No newline at end of file diff --git a/api/src/routing/TagController.kt b/api/src/routing/TagController.kt new file mode 100644 index 0000000..6c61003 --- /dev/null +++ b/api/src/routing/TagController.kt @@ -0,0 +1,20 @@ +package be.vandewalleh.routing + +import be.vandewalleh.extensions.userId +import be.vandewalleh.services.NotesService +import io.ktor.application.* +import io.ktor.auth.* +import io.ktor.response.* +import io.ktor.routing.* +import org.kodein.di.Kodein +import org.kodein.di.generic.instance + +fun Routing.tags(kodein: Kodein) { + val notesService by kodein.instance() + + authenticate { + get("/tags") { + call.respond(notesService.getTags(call.userId())) + } + } +} \ No newline at end of file