X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Futils%2FRequests.kt;h=7b7957b9936bf96de1dfae8644f2b881e9e22e87;hb=80deddc6b581421556370b31aec51d1ae902fa14;hp=50f3957111a52c12c660eb3c2c30da3cba549dfe;hpb=e3eabbebfe2b3fafe182769d0e3cc19d92979b04;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/utils/Requests.kt b/src/main/kotlin/net/pterodactylus/sone/utils/Requests.kt index 50f3957..7b7957b 100644 --- a/src/main/kotlin/net/pterodactylus/sone/utils/Requests.kt +++ b/src/main/kotlin/net/pterodactylus/sone/utils/Requests.kt @@ -1,8 +1,36 @@ package net.pterodactylus.sone.utils +import freenet.support.api.HTTPRequest +import net.pterodactylus.sone.web.page.FreenetRequest import net.pterodactylus.util.web.Method.GET import net.pterodactylus.util.web.Method.POST import net.pterodactylus.util.web.Request val Request.isGET get() = this.method == GET val Request.isPOST get() = this.method == POST +val HTTPRequest.isGET get() = method == "GET" +val HTTPRequest.isPOST get() = method == "POST" + +val FreenetRequest.parameters get() = Parameters(httpRequest) +val HTTPRequest.parameters get() = Parameters(this) + +class Parameters(private val request: HTTPRequest) { + operator fun get(name: String, maxLength: Int = 1048576) = when { + request.isGET -> request.getParam(name) + request.isPOST -> request.getPartAsStringFailsafe(name, maxLength) + else -> null + } + + operator fun contains(name: String) = when { + request.isGET -> request.isParameterSet(name) + request.isPOST -> request.isPartSet(name) + else -> false + } +} + +val FreenetRequest.headers get() = Headers(httpRequest) +val HTTPRequest.headers get() = Headers(this) + +class Headers(private val request: HTTPRequest) { + operator fun get(name: String): String? = request.getHeader(name.toLowerCase()) +}