fix: split authenticated and unauthenticated client

This commit is contained in:
Johannes Frohnmeyer 2024-05-12 16:53:01 +02:00
parent cac41a8e53
commit 378e3cc65c
Signed by: Johannes
GPG Key ID: E76429612C2929F4

View File

@ -43,6 +43,17 @@ object SDom {
ignoreUnknownKeys = true ignoreUnknownKeys = true
}) })
} }
}
private val authenticatedClient = HttpClient(Java) {
engine {
protocolVersion = java.net.http.HttpClient.Version.HTTP_2
}
install(ContentNegotiation) {
json(Json {
ignoreUnknownKeys = true
})
}
install(Auth) { install(Auth) {
basic { basic {
credentials { credentials {
@ -115,7 +126,7 @@ object SDom {
var judgementTypes: Map<String, SDJudgementType>? = null var judgementTypes: Map<String, SDJudgementType>? = null
suspend fun getContests() { suspend fun getContests() {
val result = client.get(SDCredentials.url) { val result = authenticatedClient.get(SDCredentials.url) {
url { url {
appendPathSegments("contests") appendPathSegments("contests")
} }
@ -149,7 +160,7 @@ object SDom {
suspend fun getProblems() { suspend fun getProblems() {
if (currentContest == null) return if (currentContest == null) return
val result = client.get(SDCredentials.url) { val result = authenticatedClient.get(SDCredentials.url) {
url { url {
appendPathSegments("contests", currentContest!!.id, "problems") appendPathSegments("contests", currentContest!!.id, "problems")
} }
@ -161,7 +172,7 @@ object SDom {
currentProblem = null currentProblem = null
} }
} }
judgementTypes = client.get(SDCredentials.url) { judgementTypes = authenticatedClient.get(SDCredentials.url) {
url { url {
appendPathSegments("contests", currentContest!!.id, "judgement-types") appendPathSegments("contests", currentContest!!.id, "judgement-types")
} }
@ -176,7 +187,7 @@ object SDom {
val resultFlow: MutableSharedFlow<Result<SDJudgement>> = MutableSharedFlow() val resultFlow: MutableSharedFlow<Result<SDJudgement>> = MutableSharedFlow()
launch { launch {
try { try {
val response: SDSubmission = client.post(SDCredentials.url) { val response: SDSubmission = authenticatedClient.post(SDCredentials.url) {
url { url {
appendPathSegments("contests", contest.id, "submissions") appendPathSegments("contests", contest.id, "submissions")
} }
@ -199,7 +210,7 @@ object SDom {
return@launch return@launch
} }
do { do {
val result: List<SDJudgement> = client.get(SDCredentials.url) { val result: List<SDJudgement> = authenticatedClient.get(SDCredentials.url) {
url { url {
appendPathSegments("contests", contest.id, "judgements") appendPathSegments("contests", contest.id, "judgements")
parameters.append("submission_id", response.id) parameters.append("submission_id", response.id)