41 lines
1.0 KiB
Kotlin
41 lines
1.0 KiB
Kotlin
|
package com.wyattjmiller.routes
|
||
|
|
||
|
import com.wyattjmiller.repositories.RecipeDao
|
||
|
import io.ktor.http.*
|
||
|
import io.ktor.server.application.*
|
||
|
import io.ktor.server.response.*
|
||
|
import io.ktor.server.routing.*
|
||
|
|
||
|
class RecipeRoute {
|
||
|
companion object {
|
||
|
private val rec = RecipeDao()
|
||
|
|
||
|
private fun Route.getAllRecipes() {
|
||
|
get("/recipe") {
|
||
|
call.respond(rec.getAllRecipies())
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private fun Route.getRecipe() {
|
||
|
get("/recipe/{id?}") {
|
||
|
val id = call.parameters["id"]?.toIntOrNull() ?: return@get call.respond(
|
||
|
HttpStatusCode.BadRequest, "Missing recipe identifier :("
|
||
|
)
|
||
|
|
||
|
val res = rec.getRecipe(id) ?: return@get call.respond(
|
||
|
HttpStatusCode.NotFound, "No recipe found :("
|
||
|
)
|
||
|
|
||
|
call.respond(res)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fun Application.recipeRoutes() {
|
||
|
routing {
|
||
|
getAllRecipes()
|
||
|
getRecipe()
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|