Refactor: move defense API methods into separate extension file
This commit is contained in:
118
web/src/main/kotlin/ru/ysu/lms/web/api/ApiClientDefense.kt
Normal file
118
web/src/main/kotlin/ru/ysu/lms/web/api/ApiClientDefense.kt
Normal file
@@ -0,0 +1,118 @@
|
||||
package ru.ysu.lms.web.api
|
||||
|
||||
import org.springframework.core.ParameterizedTypeReference
|
||||
import org.springframework.http.HttpHeaders
|
||||
import org.springframework.http.MediaType
|
||||
|
||||
fun ApiClient.labDefenses(
|
||||
token: String,
|
||||
labId: String,
|
||||
): List<DefenseDto> {
|
||||
val type = object : ParameterizedTypeReference<List<DefenseDto>>() {}
|
||||
return call {
|
||||
client
|
||||
.get()
|
||||
.uri("/api/v1/defenses?labId={labId}", labId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.body(type)
|
||||
}
|
||||
}
|
||||
|
||||
fun ApiClient.assignDefense(
|
||||
token: String,
|
||||
studentId: String,
|
||||
labId: String,
|
||||
assignmentMd: String,
|
||||
): DefenseDto =
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/defenses/assign")
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.body(mapOf("studentId" to studentId, "labId" to labId, "assignmentMd" to assignmentMd))
|
||||
.retrieve()
|
||||
.body(DefenseDto::class.java)
|
||||
}
|
||||
|
||||
fun ApiClient.issueDefenseCode(
|
||||
token: String,
|
||||
sessionId: String,
|
||||
): String =
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/defenses/{id}/issue-code", sessionId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.body(Map::class.java)
|
||||
}.get("code").toString()
|
||||
|
||||
fun ApiClient.resetDefense(
|
||||
token: String,
|
||||
sessionId: String,
|
||||
) {
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/defenses/{id}/reset", sessionId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.toBodilessEntity()
|
||||
}
|
||||
}
|
||||
|
||||
fun ApiClient.myDefenses(token: String): List<DefenseDto> {
|
||||
val type = object : ParameterizedTypeReference<List<DefenseDto>>() {}
|
||||
return call {
|
||||
client
|
||||
.get()
|
||||
.uri("/api/v1/me/defenses")
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.body(type)
|
||||
}
|
||||
}
|
||||
|
||||
fun ApiClient.myDefense(
|
||||
token: String,
|
||||
labId: String,
|
||||
): DefenseDto? =
|
||||
callOrNull {
|
||||
client
|
||||
.get()
|
||||
.uri("/api/v1/me/defenses/{labId}", labId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.body(DefenseDto::class.java)
|
||||
}
|
||||
|
||||
fun ApiClient.startDefense(
|
||||
token: String,
|
||||
code: String,
|
||||
): DefenseDto =
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/me/defenses/start")
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.body(mapOf("code" to code))
|
||||
.retrieve()
|
||||
.body(DefenseDto::class.java)
|
||||
}
|
||||
|
||||
fun ApiClient.finishDefense(
|
||||
token: String,
|
||||
sessionId: String,
|
||||
): DefenseDto =
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/me/defenses/{id}/finish", sessionId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.retrieve()
|
||||
.body(DefenseDto::class.java)
|
||||
}
|
||||
@@ -258,116 +258,3 @@ fun ApiClient.downloadSubmissionAsAdmin(
|
||||
}
|
||||
return downloadOf(entity)
|
||||
}
|
||||
|
||||
fun ApiClient.labDefenses(
|
||||
token: String,
|
||||
labId: String,
|
||||
): List<DefenseDto> {
|
||||
val type = object : ParameterizedTypeReference<List<DefenseDto>>() {}
|
||||
return call {
|
||||
client
|
||||
.get()
|
||||
.uri("/api/v1/defenses?labId={labId}", labId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.body(type)
|
||||
}
|
||||
}
|
||||
|
||||
fun ApiClient.assignDefense(
|
||||
token: String,
|
||||
studentId: String,
|
||||
labId: String,
|
||||
assignmentMd: String,
|
||||
): DefenseDto =
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/defenses/assign")
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.body(mapOf("studentId" to studentId, "labId" to labId, "assignmentMd" to assignmentMd))
|
||||
.retrieve()
|
||||
.body(DefenseDto::class.java)
|
||||
}
|
||||
|
||||
fun ApiClient.issueDefenseCode(
|
||||
token: String,
|
||||
sessionId: String,
|
||||
): String =
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/defenses/{id}/issue-code", sessionId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.body(Map::class.java)
|
||||
}.get("code").toString()
|
||||
|
||||
fun ApiClient.resetDefense(
|
||||
token: String,
|
||||
sessionId: String,
|
||||
) {
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/defenses/{id}/reset", sessionId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.toBodilessEntity()
|
||||
}
|
||||
}
|
||||
|
||||
fun ApiClient.myDefenses(token: String): List<DefenseDto> {
|
||||
val type = object : ParameterizedTypeReference<List<DefenseDto>>() {}
|
||||
return call {
|
||||
client
|
||||
.get()
|
||||
.uri("/api/v1/me/defenses")
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.body(type)
|
||||
}
|
||||
}
|
||||
|
||||
fun ApiClient.myDefense(
|
||||
token: String,
|
||||
labId: String,
|
||||
): DefenseDto? =
|
||||
callOrNull {
|
||||
client
|
||||
.get()
|
||||
.uri("/api/v1/me/defenses/{labId}", labId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.retrieve()
|
||||
.body(DefenseDto::class.java)
|
||||
}
|
||||
|
||||
fun ApiClient.startDefense(
|
||||
token: String,
|
||||
code: String,
|
||||
): DefenseDto =
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/me/defenses/start")
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.body(mapOf("code" to code))
|
||||
.retrieve()
|
||||
.body(DefenseDto::class.java)
|
||||
}
|
||||
|
||||
fun ApiClient.finishDefense(
|
||||
token: String,
|
||||
sessionId: String,
|
||||
): DefenseDto =
|
||||
call {
|
||||
client
|
||||
.post()
|
||||
.uri("/api/v1/me/defenses/{id}/finish", sessionId)
|
||||
.header(HttpHeaders.AUTHORIZATION, bearer(token))
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.retrieve()
|
||||
.body(DefenseDto::class.java)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user