@@ -6,27 +6,28 @@ final class StatsPediodCache {
66
77 private var cache : [ CacheKey : StatsTimeIntervalData ] = [ : ]
88
9- func getValue< T: StatsTimeIntervalData > ( record: Record , date: Date , period: StatsPeriodUnit , siteID: NSNumber ) -> T ? {
10- let key = makeKey ( record: record, date: date, period: period, siteID: siteID)
9+ func getValue< T: StatsTimeIntervalData > ( record: Record , date: Date , period: StatsPeriodUnit , unit : StatsPeriodUnit , siteID: NSNumber ) -> T ? {
10+ let key = makeKey ( record: record, date: date, period: period, unit : unit , siteID: siteID)
1111 return cache [ key] as? T
1212 }
1313
1414 func setValue< T: StatsTimeIntervalData > ( _ value: T , record: Record , siteID: NSNumber ) {
15- let key = makeKey ( record: record, date: value. periodEndDate, period: value. period, siteID: siteID)
15+ let key = makeKey ( record: record, date: value. periodEndDate, period: value. period, unit : value . unit ?? value . period , siteID: siteID)
1616 cache [ key] = value
1717 }
1818
1919 func removeAll( ) {
2020 cache. removeAll ( )
2121 }
2222
23- private func makeKey( record: Record , date: Date , period: StatsPeriodUnit , siteID: NSNumber ) -> CacheKey {
23+ private func makeKey( record: Record , date: Date , period: StatsPeriodUnit , unit : StatsPeriodUnit , siteID: NSNumber ) -> CacheKey {
2424 let date = Calendar . current. startOfDay ( for: date)
25- return CacheKey ( record: record, date: date, period: period, siteID: siteID)
25+ return CacheKey ( record: record, date: date, period: period, unit : unit , siteID: siteID)
2626 }
2727
2828 enum Record : Hashable {
29- case summary
29+ case timeIntervalsSummary
30+ case totalsSummary
3031 case topPostsAndPages
3132 case topReferrers
3233 case topClicks
@@ -42,6 +43,7 @@ final class StatsPediodCache {
4243 let record : Record
4344 let date : Date
4445 let period : StatsPeriodUnit
46+ let unit : StatsPeriodUnit
4547 let siteID : NSNumber
4648 }
4749}
0 commit comments