改包名com.aiosman.ravenow
This commit is contained in:
45
app/src/main/java/com/aiosman/ravenow/data/CaptchaService.kt
Normal file
45
app/src/main/java/com/aiosman/ravenow/data/CaptchaService.kt
Normal file
@@ -0,0 +1,45 @@
|
||||
package com.aiosman.ravenow.data
|
||||
|
||||
import com.aiosman.ravenow.data.api.ApiClient
|
||||
import com.aiosman.ravenow.data.api.CaptchaRequestBody
|
||||
import com.aiosman.ravenow.data.api.CaptchaResponseBody
|
||||
import com.aiosman.ravenow.data.api.CheckLoginCaptchaRequestBody
|
||||
import com.aiosman.ravenow.data.api.GenerateLoginCaptchaRequestBody
|
||||
|
||||
|
||||
interface CaptchaService {
|
||||
suspend fun generateCaptcha(source: String): CaptchaResponseBody
|
||||
suspend fun checkLoginCaptcha(username: String): Boolean
|
||||
suspend fun generateLoginCaptcha(username: String): CaptchaResponseBody
|
||||
}
|
||||
|
||||
class CaptchaServiceImpl : CaptchaService {
|
||||
override suspend fun generateCaptcha(source: String): CaptchaResponseBody {
|
||||
val resp = ApiClient.api.generateCaptcha(
|
||||
CaptchaRequestBody(source)
|
||||
)
|
||||
val data = resp.body() ?: throw Exception("Failed to generate captcha")
|
||||
return data.data.copy(
|
||||
masterBase64 = data.data.masterBase64.replace("data:image/jpeg;base64,", ""),
|
||||
thumbBase64 = data.data.thumbBase64.replace("data:image/png;base64,", "")
|
||||
)
|
||||
}
|
||||
|
||||
override suspend fun checkLoginCaptcha(username: String): Boolean {
|
||||
val resp = ApiClient.api.checkLoginCaptcha(
|
||||
CheckLoginCaptchaRequestBody(username)
|
||||
)
|
||||
return resp.body()?.data ?: true
|
||||
}
|
||||
|
||||
override suspend fun generateLoginCaptcha(username: String): CaptchaResponseBody {
|
||||
val resp = ApiClient.api.generateLoginCaptcha(
|
||||
GenerateLoginCaptchaRequestBody(username)
|
||||
)
|
||||
val data = resp.body() ?: throw Exception("Failed to generate captcha")
|
||||
return data.data.copy(
|
||||
masterBase64 = data.data.masterBase64.replace("data:image/jpeg;base64,", ""),
|
||||
thumbBase64 = data.data.thumbBase64.replace("data:image/png;base64,", "")
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user