From 5a9bdaca7389573ccdb57f913acb9450ce8403ff Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Mon, 20 Apr 2020 16:09:35 +0200 Subject: [PATCH] Move and rename more things --- api/src/controllers/ChaptersController.kt | 70 +------------------ api/src/controllers/NotesController.kt | 4 +- api/src/controllers/RegisterController.kt | 11 +++ api/src/controllers/TitleController.kt | 2 +- .../controllers/base/AuthCrudController.kt | 6 +- 5 files changed, 20 insertions(+), 73 deletions(-) create mode 100644 api/src/controllers/RegisterController.kt diff --git a/api/src/controllers/ChaptersController.kt b/api/src/controllers/ChaptersController.kt index b55f05d..1fab10d 100644 --- a/api/src/controllers/ChaptersController.kt +++ b/api/src/controllers/ChaptersController.kt @@ -1,20 +1,9 @@ package be.vandewalleh.controllers import be.vandewalleh.controllers.base.AuthCrudController -import be.vandewalleh.entities.User -import be.vandewalleh.tables.Chapters -import be.vandewalleh.tables.Notes -import be.vandewalleh.tables.Users import io.ktor.application.ApplicationCall -import io.ktor.application.call -import io.ktor.http.HttpStatusCode -import io.ktor.request.receive -import io.ktor.routing.Route -import io.ktor.routing.post +import io.ktor.routing.Routing import me.liuwj.ktorm.database.Database -import me.liuwj.ktorm.dsl.* -import me.liuwj.ktorm.entity.find -import me.liuwj.ktorm.entity.sequenceOf import org.kodein.di.Kodein import org.kodein.di.generic.instance @@ -29,60 +18,7 @@ class ChaptersController(kodein: Kodein) : AuthCrudController("/notes/{noteTitle return this.parameters["chapterNumber"]?.toIntOrNull() } - private fun ApplicationCall.chapterExists(): Boolean { - val user = user() - val title = noteTitle() ?: error("title missing") - val noteId = requestedNoteId() ?: error("") - - - - return db.from(Chapters) - .select(Chapters.id) - .where { Notes.userId eq user.id and (Notes.id eq noteId) } - .limit(0, 1) - .map { it[Notes.id]!! } - .firstOrNull() != null - } - - private fun ApplicationCall.user(): User { - return db.sequenceOf(Users) - .find { it.email eq this.userEmail() } - ?: error("") - } - - /** - * Method that returns a [Notes] ID from it's title and the currently logged in user. - * returns null if none found - */ - private fun ApplicationCall.requestedNoteId(): Int? { - val user = user() - val title = noteTitle() ?: error("title missing") - - return db.from(Notes) - .select(Notes.id) - .where { Notes.userId eq user.id and (Notes.title eq title) } - .limit(0, 1) - .map { it[Notes.id]!! } - .firstOrNull() - } - - - private data class PostRequestBody(val title: String, val content: String) - - override val route: Route.() -> Unit = { - post { - val noteId = call.requestedNoteId() - ?: return@post call.respondStatus(HttpStatusCode.NotFound) - - val chapterNumber = call.chapterNumber() - ?:return@post call.respondStatus(HttpStatusCode.BadRequest) - - val exists = false - - - val (title, content) = call.receive() - - - } + override fun Routing.registerAuthRoutes() { + TODO("Not yet implemented") } } diff --git a/api/src/controllers/NotesController.kt b/api/src/controllers/NotesController.kt index 38df007..cec3c8d 100644 --- a/api/src/controllers/NotesController.kt +++ b/api/src/controllers/NotesController.kt @@ -4,7 +4,7 @@ import be.vandewalleh.controllers.base.AuthCrudController import be.vandewalleh.services.NotesService import io.ktor.application.call import io.ktor.response.respond -import io.ktor.routing.Route +import io.ktor.routing.Routing import io.ktor.routing.get import org.kodein.di.Kodein import org.kodein.di.generic.instance @@ -12,7 +12,7 @@ import org.kodein.di.generic.instance class NotesController(kodein: Kodein) : AuthCrudController("/notes", kodein) { private val notesService by kodein.instance() - override val route: Route.() -> Unit = { + override fun Routing.registerAuthRoutes() { get { val userId = call.userId() val notes = notesService.getNotes(userId) diff --git a/api/src/controllers/RegisterController.kt b/api/src/controllers/RegisterController.kt new file mode 100644 index 0000000..52d6a23 --- /dev/null +++ b/api/src/controllers/RegisterController.kt @@ -0,0 +1,11 @@ +package be.vandewalleh.controllers + +import be.vandewalleh.controllers.base.KodeinController +import io.ktor.routing.Routing +import org.kodein.di.Kodein + +class RegisterController(kodein: Kodein): KodeinController(kodein){ + override fun Routing.registerRoutes() { + + } +} \ No newline at end of file diff --git a/api/src/controllers/TitleController.kt b/api/src/controllers/TitleController.kt index c38ddc0..3a60f95 100644 --- a/api/src/controllers/TitleController.kt +++ b/api/src/controllers/TitleController.kt @@ -59,7 +59,7 @@ class TitleController(kodein: Kodein) : AuthCrudController("/notes/{noteTitle}", private class PatchRequestBody(val title: String? = null, val tags: List? = null) - override val route: Route.() -> Unit = { + override fun Routing.registerAuthRoutes() { post { val title = call.noteTitle() ?: error("") val tags = call.receive().tags diff --git a/api/src/controllers/base/AuthCrudController.kt b/api/src/controllers/base/AuthCrudController.kt index 00ca994..a69d9fc 100644 --- a/api/src/controllers/base/AuthCrudController.kt +++ b/api/src/controllers/base/AuthCrudController.kt @@ -17,8 +17,6 @@ abstract class AuthCrudController( ) : KodeinController(kodein) { - abstract val route: Route.() -> Unit - private val userService by instance() fun ApplicationCall.userEmail(): String = @@ -27,10 +25,12 @@ abstract class AuthCrudController( fun ApplicationCall.userId(): Int = userService.getUserId(userEmail())!! + abstract fun Routing.registerAuthRoutes() + override fun Routing.registerRoutes() { authenticate { route(path) { - route() + this@registerRoutes.registerAuthRoutes() } } }