package net.axay.kspigot.ipaddress.badipdetectionservices

import net.axay.kspigot.ipaddress.BadIPDetectionResult
import net.axay.kspigot.ipaddress.BadIPDetectionService
import net.axay.kspigot.languageextensions.getStringOrNull
import org.json.JSONObject

class IPInfo(
    private val token: String
) : BadIPDetectionService("ipinfo.io") {

    override fun requestString(ip: String) = "https://ipinfo.io/$ip/privacy?token=$token"

    override fun interpreteResult(result: JSONObject): BadIPDetectionResult {
        return when {
            result.getStringOrNull("vpn").toBoolean() -> BadIPDetectionResult.VPN
            result.getStringOrNull("proxy").toBoolean() -> BadIPDetectionResult.PROXY
            result.getStringOrNull("tor").toBoolean() -> BadIPDetectionResult.TOR
            result.getStringOrNull("hosting").toBoolean() -> BadIPDetectionResult.HOSTING
            else -> BadIPDetectionResult.GOOD
        }
    }

}