Handle HEAD requests

This commit is contained in:
kageru 2019-09-29 16:20:50 +02:00
parent facb408e89
commit 0f1bd98f49

View File

@ -11,11 +11,13 @@ import io.ktor.http.content.streamProvider
import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.locations.Location import io.ktor.locations.Location
import io.ktor.locations.get import io.ktor.locations.get
import io.ktor.locations.head
import io.ktor.request.receiveMultipart import io.ktor.request.receiveMultipart
import io.ktor.response.respond import io.ktor.response.respond
import io.ktor.response.respondText import io.ktor.response.respondText
import io.ktor.routing.Routing import io.ktor.routing.Routing
import io.ktor.routing.get import io.ktor.routing.get
import io.ktor.routing.head
import io.ktor.routing.post import io.ktor.routing.post
import moe.kageru.kodeshare.config.ServerSpec import moe.kageru.kodeshare.config.ServerSpec
import moe.kageru.kodeshare.config.config import moe.kageru.kodeshare.config.config
@ -54,6 +56,26 @@ object Routes {
get<TypedPasteRequest> { req -> get<TypedPasteRequest> { req ->
call.handleGet(req) call.handleGet(req)
} }
head("/") {
call.respond(HttpStatusCode.OK)
}
head<RawPasteRequest> { req ->
call.handleHead(req)
}
head<TypedPasteRequest> { req ->
call.handleHead(req)
}
head<PasteRequest> { req ->
call.handleHead(req)
}
}
private suspend fun ApplicationCall.handleHead(paste: AbstractPasteRequest) {
if (PasteDao.selectByUri(paste.uri) != null) {
respond(HttpStatusCode.OK)
} else {
respond(HttpStatusCode.NotFound)
}
} }
@ExperimentalStdlibApi @ExperimentalStdlibApi