Sources/Confidence/Apply/CacheDataInteractor.swift (37 lines of code) (raw):
import Foundation
final actor CacheDataInteractor: CacheDataActor {
var cache = CacheData.empty()
init(cacheData: CacheData) {
cache = CacheData.convertInTransit(cache: cacheData)
}
func add(resolveToken: String, flagName: String, applyTime: Date) -> (CacheData, Bool) {
if cache.isEmpty == false {
let added = cache.add(resolveToken: resolveToken, flagName: flagName, applyTime: applyTime)
return (cache, added)
} else {
cache = CacheData(
resolveToken: resolveToken,
flagName: flagName,
applyTime: applyTime
)
return (cache, true)
}
}
func remove(resolveToken: String, flagName: String) {
cache.remove(resolveToken: resolveToken, flagName: flagName)
}
func remove(resolveToken: String) {
cache.remove(resolveToken: resolveToken)
}
func applyEventExists(resolveToken: String, name: String) -> Bool {
cache.applyEventExists(resolveToken: resolveToken, name: name)
}
func setEventStatus(resolveToken: String, name: String, status: ApplyEventStatus) -> CacheData {
cache.setEventStatus(resolveToken: resolveToken, name: name, status: status)
return cache
}
func setEventStatus(resolveToken: String, status: ApplyEventStatus) -> CacheData {
cache.setEventStatus(resolveToken: resolveToken, status: status)
return cache
}
}