com.github.charleslzq.baiduface.client.io.BaiduResult.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of baidu-face-server Show documentation
Show all versions of baidu-face-server Show documentation
baidu face server, make request to baidu face open api for client
The newest version!
package com.github.charleslzq.baiduface.client.io
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName
import com.google.gson.reflect.TypeToken
import org.json.JSONObject
interface FromJson {
val RESPONSE_TYPE_TOKEN: TypeToken>
fun fromJson(gson: Gson, getter: () -> JSONObject) = fromJsonObject(gson, getter())
fun fromJsonObject(gson: Gson, json: JSONObject) = convertJsonObject(json, convertUseGson(gson))
fun convertJsonObject(json: JSONObject, convert: (JSONObject, TypeToken>) -> BaiduResponse) = convert(json, RESPONSE_TYPE_TOKEN)
fun convertUseGson(gson: Gson): (JSONObject, TypeToken>) -> BaiduResponse = { json, typeToken ->
gson.fromJson(json.toString(), typeToken.type)
}
}
data class BaiduResponse(
val result: D?,
@SerializedName("log_id") val logId: String,
@SerializedName("error_code") val errorCode: String,
@SerializedName("error_msg") val errorMsg: String,
val timestamp: Long
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
fun errResponse(errMsg: String, errCode: String = "-1") = BaiduResponse(
result = null,
logId = "",
errorCode = errCode,
errorMsg = errMsg,
timestamp = System.currentTimeMillis()
)
}
}
data class DetectResult(
@SerializedName("face_num") val count: Int,
@SerializedName("face_list") val faceList: List
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN = object : TypeToken>() {}
}
}
data class SearchResult(
@SerializedName("face_token") val faceToken: String,
@SerializedName("user_list") val userList: List
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
}
}
data class UserSearchResult(
@SerializedName("group_id") val groupId: String,
@SerializedName("user_id") val userId: String,
@SerializedName("user_info") val userInfo: String,
val score: Float
)
data class FaceOperationResult(
@SerializedName("face_token") val faceToken: String,
val location: FaceLocation
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
}
}
data class UserQueryResult(
@SerializedName("user_list") val userList: List
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
}
}
data class FaceListResult(
@SerializedName("face_list") val faceList: List
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
}
}
data class UserIdList(
@SerializedName("user_id_list") val userIdList: List
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
}
}
data class GroupIdList(
@SerializedName("group_id_list") val groupIdList: List
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
}
}
data class MatchResult(
val score: Float,
@SerializedName("face_list") val faceList: List
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
}
}
data class VerifyResult(
@SerializedName("face_liveness") val liveness: Float,
val thresholds: VerifyThreshold,
@SerializedName("face_list") val faceList: List
) {
companion object : FromJson {
override val RESPONSE_TYPE_TOKEN: TypeToken> = object : TypeToken>() {}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy