X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Futils%2FRequests.kt;h=ded275f79315678605215f486c212130b636a606;hb=bf496cfa392e27dd45245d00dc845e8e713cf0ba;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..ded275f 100644 --- a/src/main/kotlin/net/pterodactylus/sone/utils/Requests.kt +++ b/src/main/kotlin/net/pterodactylus/sone/utils/Requests.kt @@ -1,8 +1,29 @@ 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 + } +}