@@ -20,6 +20,12 @@ public class StatsServiceRemoteV2: ServiceRemoteWordPressComREST {
2020 return df
2121 } ( )
2222
23+ private lazy var calendarForSite : Calendar = {
24+ var cal = Calendar ( identifier: . iso8601)
25+ cal. timeZone = siteTimezone
26+ return cal
27+ } ( )
28+
2329 public init ( wordPressComRestApi api: WordPressComRestApi , siteID: Int , siteTimezone: TimeZone ) {
2430 self . siteID = siteID
2531 self . siteTimezone = siteTimezone
@@ -198,9 +204,7 @@ extension StatsServiceRemoteV2 {
198204 endingOn: Date ,
199205 limit: Int = 10 ,
200206 completion: @escaping ( ( StatsPublishedPostsTimeIntervalData ? , Error ? ) -> Void ) ) {
201-
202207 let pathComponent = StatsLastPostInsight . pathComponent
203-
204208 let path = self . path ( forEndpoint: " sites/ \( siteID) / \( pathComponent) " , withVersion: . _1_1)
205209
206210 let properties = [ " number " : limit,
@@ -227,21 +231,19 @@ extension StatsServiceRemoteV2 {
227231 private func startDate( for period: StatsPeriodUnit , endDate: Date ) -> Date {
228232 switch period {
229233 case . day:
230- return Calendar . autoupdatingCurrent . startOfDay ( for: endDate)
234+ return calendarForSite . startOfDay ( for: endDate)
231235 case . week:
232- let weekAgo = Calendar . autoupdatingCurrent . date ( byAdding: . day, value: - 6 , to: endDate) !
233- return Calendar . autoupdatingCurrent . startOfDay ( for: weekAgo)
236+ let weekAgo = calendarForSite . date ( byAdding: . day, value: - 6 , to: endDate) !
237+ return calendarForSite . startOfDay ( for: weekAgo)
234238 case . month:
235- let monthAgo = Calendar . autoupdatingCurrent. date ( byAdding: . month, value: - 1 , to: endDate) !
236- let firstOfMonth = Calendar . autoupdatingCurrent. date ( bySetting: . day, value: 1 , of: monthAgo) !
237-
238- return Calendar . autoupdatingCurrent. startOfDay ( for: firstOfMonth)
239+ let monthAgo = calendarForSite. date ( byAdding: . month, value: - 1 , to: endDate) !
240+ let firstOfMonth = calendarForSite. date ( bySetting: . day, value: 1 , of: monthAgo) !
241+ return calendarForSite. startOfDay ( for: firstOfMonth)
239242 case . year:
240- let yearAgo = Calendar . autoupdatingCurrent. date ( byAdding: . year, value: - 1 , to: endDate) !
241- let january = Calendar . autoupdatingCurrent. date ( bySetting: . month, value: 1 , of: yearAgo) !
242- let jan1 = Calendar . autoupdatingCurrent. date ( bySetting: . day, value: 1 , of: january) !
243-
244- return Calendar . autoupdatingCurrent. startOfDay ( for: jan1)
243+ let yearAgo = calendarForSite. date ( byAdding: . year, value: - 1 , to: endDate) !
244+ let january = calendarForSite. date ( bySetting: . month, value: 1 , of: yearAgo) !
245+ let jan1 = calendarForSite. date ( bySetting: . day, value: 1 , of: january) !
246+ return calendarForSite. startOfDay ( for: jan1)
245247 }
246248 }
247249
0 commit comments