mirror of https://github.com/hykilpikonna/AquaDX
[+] Version cache
parent
24bf6cffc3
commit
e85d294d12
|
@ -0,0 +1,28 @@
|
||||||
|
package icu.samnyan.aqua.sega.chusan
|
||||||
|
|
||||||
|
import ext.logger
|
||||||
|
import icu.samnyan.aqua.sega.chusan.model.Chu3Repos
|
||||||
|
import org.springframework.stereotype.Component
|
||||||
|
|
||||||
|
|
||||||
|
@Component
|
||||||
|
class Chu3VersionHelper(val db: Chu3Repos) {
|
||||||
|
val log = logger()
|
||||||
|
|
||||||
|
// Cache of <client id : version>
|
||||||
|
val cache: MutableMap<String, String> = mutableMapOf()
|
||||||
|
|
||||||
|
// Obtain the cabinet's most recent version
|
||||||
|
operator fun get(clientId: String): String {
|
||||||
|
// Try to find the version in the cache
|
||||||
|
cache[clientId]?.let { return it }
|
||||||
|
|
||||||
|
// Not found, check the most recent user
|
||||||
|
return db.userData.findTopByLastClientIdOrderByLastPlayDateDesc(clientId)?.lastDataVersion
|
||||||
|
?.also { cache[clientId] = it } ?: "2.25.13".also { log.warn("No version found for $clientId") }
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun set(clientId: String, version: String) {
|
||||||
|
cache[clientId] = version
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue