|
|
@@ -1,7 +1,6 @@
|
|
|
package org.sirekanyan.outline.repository
|
|
|
|
|
|
import org.sirekanyan.outline.api.OutlineApi
|
|
|
-import org.sirekanyan.outline.api.model.Server
|
|
|
import org.sirekanyan.outline.api.model.getHost
|
|
|
import org.sirekanyan.outline.db.model.ServerEntity
|
|
|
import org.sirekanyan.outline.ext.logDebug
|
|
|
@@ -9,17 +8,17 @@ import java.util.concurrent.ConcurrentHashMap
|
|
|
|
|
|
class ServerRepository(private val api: OutlineApi) {
|
|
|
|
|
|
- private val cache: MutableMap<String, Server> = ConcurrentHashMap()
|
|
|
+ private val cache: MutableMap<String, ServerEntity> = ConcurrentHashMap()
|
|
|
|
|
|
- fun getCachedServer(server: ServerEntity): Server =
|
|
|
- cache[server.id] ?: Server(server.getHost(), traffic = null)
|
|
|
+ fun getCachedServer(server: ServerEntity): ServerEntity =
|
|
|
+ cache[server.id] ?: server.copy(name = server.getHost(), traffic = null)
|
|
|
|
|
|
- suspend fun fetchServer(server: ServerEntity): Server =
|
|
|
+ suspend fun fetchServer(server: ServerEntity): ServerEntity =
|
|
|
api.getServer(server).also { fetched ->
|
|
|
cache[server.id] = fetched
|
|
|
}
|
|
|
|
|
|
- suspend fun getServer(server: ServerEntity): Server {
|
|
|
+ suspend fun getServer(server: ServerEntity): ServerEntity {
|
|
|
if (!cache.containsKey(server.id)) {
|
|
|
try {
|
|
|
return fetchServer(server)
|