50 lines
1018 B
Kotlin
50 lines
1018 B
Kotlin
import kotlinx.coroutines.delay
|
|
import kotlin.math.max
|
|
|
|
data class Config(val baseUrl: String, val timeout: Int)
|
|
|
|
class HttpClient(private val config: Config) {
|
|
fun get(path: String): String {
|
|
return buildRequest("GET", path)
|
|
}
|
|
|
|
fun post(path: String, body: String): String {
|
|
return buildRequest("POST", path)
|
|
}
|
|
|
|
private fun buildRequest(method: String, path: String): String {
|
|
return "$method ${config.baseUrl}$path"
|
|
}
|
|
}
|
|
|
|
interface Loggable {
|
|
fun log()
|
|
}
|
|
|
|
open class BaseProcessor
|
|
|
|
class Result<T>
|
|
|
|
class DataProcessor : BaseProcessor(), Loggable {
|
|
var current: Result<DataProcessor> = Result()
|
|
|
|
fun run(input: DataProcessor): Result<DataProcessor> {
|
|
return current
|
|
}
|
|
|
|
override fun log() {}
|
|
}
|
|
|
|
class LoggingList<T>(inner: MutableList<T>) : MutableList<T> by inner
|
|
|
|
fun createClient(baseUrl: String): HttpClient {
|
|
val config = Config(baseUrl, 30)
|
|
return HttpClient(config)
|
|
}
|
|
|
|
enum class ChatType {
|
|
NORMAL,
|
|
GROUP,
|
|
SYSTEM
|
|
}
|