rename
This commit is contained in:
@@ -71,7 +71,7 @@ class RedisCache(
|
||||
}
|
||||
}
|
||||
|
||||
suspend inline fun <reified T> exec(
|
||||
suspend inline fun <reified T> transact(
|
||||
key: String,
|
||||
ttl: Duration? = null,
|
||||
createNew: suspend () -> T
|
||||
|
||||
+3
-3
@@ -16,7 +16,7 @@ class CacheVideoApi(
|
||||
private val ttl = 3.days
|
||||
|
||||
override suspend fun fetchNewVideos(query: String?): VideosResponse {
|
||||
return redis.exec("$PREFIX:videos:$query", ttl) {
|
||||
return redis.transact("$PREFIX:videos:$query", ttl) {
|
||||
wrapper.fetchNewVideos(query).let {
|
||||
if (query != null) {
|
||||
it.copy(items = filter.filter(it.items, query))
|
||||
@@ -28,11 +28,11 @@ class CacheVideoApi(
|
||||
}
|
||||
|
||||
override suspend fun fetchDetails(id: Long): VideoDetails {
|
||||
return redis.exec("$PREFIX:details:$id", ttl) { wrapper.fetchDetails(id) }
|
||||
return redis.transact("$PREFIX:details:$id", ttl) { wrapper.fetchDetails(id) }
|
||||
}
|
||||
|
||||
override suspend fun fetchVideoLinks(id: Long, seasonId: Long?): VideoLinksResponse {
|
||||
return redis.exec("$PREFIX:links:$id:$seasonId", ttl) {
|
||||
return redis.transact("$PREFIX:links:$id:$seasonId", ttl) {
|
||||
wrapper.fetchVideoLinks(id, seasonId)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -38,7 +38,7 @@ class CacheRecentlyWatchedRepository(
|
||||
): Flow<List<RecentlyWatchedInfo>> {
|
||||
return flow {
|
||||
emit(
|
||||
redis.exec(
|
||||
redis.transact(
|
||||
"$prefix:$movieId:$seasonId",
|
||||
7.days
|
||||
) { wrapper.queryRecentlyWatched(movieId, seasonId).first() }
|
||||
@@ -47,7 +47,7 @@ class CacheRecentlyWatchedRepository(
|
||||
}
|
||||
|
||||
override suspend fun getAllRecentlyWatched(): List<RecentlyWatchedInfo> {
|
||||
return redis.exec(
|
||||
return redis.transact(
|
||||
prefix,
|
||||
7.days
|
||||
) { wrapper.getAllRecentlyWatched() }
|
||||
|
||||
+6
-9
@@ -10,38 +10,35 @@ import kotlin.time.Duration.Companion.days
|
||||
|
||||
class CacheSavedMovieRepository(
|
||||
private val wrapper: SavedMovieRepository,
|
||||
private val redisCache: RedisCache,
|
||||
private val redis: RedisCache,
|
||||
userId: Long
|
||||
) : SavedMovieRepository {
|
||||
private val ttl = 7.days
|
||||
private val prefix = "saved-movie:$userId"
|
||||
|
||||
override suspend fun save(details: VideoDetails) {
|
||||
obtainKeys(details.id).forEach { redisCache.delete(it) }
|
||||
obtainKeys(details.id).forEach { redis.delete(it) }
|
||||
wrapper.save(details)
|
||||
}
|
||||
|
||||
private fun obtainKeys(id: Long): Set<String> {
|
||||
return setOf(
|
||||
"$prefix:$id",
|
||||
prefix
|
||||
)
|
||||
return setOf("$prefix:$id", prefix)
|
||||
}
|
||||
|
||||
override fun getAll(): Flow<List<VideoDetails>> {
|
||||
return flow {
|
||||
emit(redisCache.exec(prefix, ttl) { wrapper.getAll().first() })
|
||||
emit(redis.transact(prefix, ttl) { wrapper.getAll().first() })
|
||||
}
|
||||
}
|
||||
|
||||
override fun isSaved(id: Long): Flow<Boolean> {
|
||||
return flow {
|
||||
emit(redisCache.exec("$prefix:$id") { wrapper.isSaved(id).first() })
|
||||
emit(redis.transact("$prefix:$id") { wrapper.isSaved(id).first() })
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun remove(id: Long) {
|
||||
obtainKeys(id).forEach { redisCache.delete(it) }
|
||||
obtainKeys(id).forEach { redis.delete(it) }
|
||||
wrapper.remove(id)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user