@@ -384,6 +384,12 @@ private extension StatsPeriodStore {
384384 return
385385 }
386386
387+ let group = DispatchGroup ( )
388+
389+ if FeatureFlag . statsNewAppearance. enabled {
390+ group. enter ( )
391+ DDLogInfo ( " Stats Period: Enter group fetching likes summary. " )
392+ }
387393 let likesOperation = PeriodOperation ( service: service, for: period, date: date, limit: 14 ) { [ weak self] ( likes: StatsLikesSummaryTimeIntervalData ? , error: Error ? ) in
388394 if error != nil {
389395 DDLogError ( " Stats Period: Error fetching likes summary: \( String ( describing: error? . localizedDescription) ) " )
@@ -392,9 +398,17 @@ private extension StatsPeriodStore {
392398 DDLogInfo ( " Stats Period: Finished fetching likes summary. " )
393399 DispatchQueue . main. async {
394400 self ? . receivedLikesSummary ( likes, error)
401+ if FeatureFlag . statsNewAppearance. enabled {
402+ DDLogInfo ( " Stats Period: Leave group fetching likes summary. " )
403+ group. leave ( )
404+ }
395405 }
396406 }
397407
408+ if FeatureFlag . statsNewAppearance. enabled {
409+ group. enter ( )
410+ DDLogInfo ( " Stats Period: Enter group fetching posts. " )
411+ }
398412 let topPostsOperation = PeriodOperation ( service: service, for: period, date: date) { [ weak self] ( posts: StatsTopPostsTimeIntervalData ? , error: Error ? ) in
399413 if error != nil {
400414 DDLogError ( " Stats Period: Error fetching posts: \( String ( describing: error? . localizedDescription) ) " )
@@ -404,9 +418,17 @@ private extension StatsPeriodStore {
404418
405419 DispatchQueue . main. async {
406420 self ? . receivedPostsAndPages ( posts, error)
421+ if FeatureFlag . statsNewAppearance. enabled {
422+ DDLogInfo ( " Stats Period: Leave group fetching posts. " )
423+ group. leave ( )
424+ }
407425 }
408426 }
409427
428+ if FeatureFlag . statsNewAppearance. enabled {
429+ group. enter ( )
430+ DDLogInfo ( " Stats Period: Enter group fetching referrers. " )
431+ }
410432 let topReferrers = PeriodOperation ( service: service, for: period, date: date) { [ weak self] ( referrers: StatsTopReferrersTimeIntervalData ? , error: Error ? ) in
411433 if error != nil {
412434 DDLogError ( " Stats Period: Error fetching referrers: \( String ( describing: error? . localizedDescription) ) " )
@@ -416,9 +438,17 @@ private extension StatsPeriodStore {
416438
417439 DispatchQueue . main. async {
418440 self ? . receivedReferrers ( referrers, error)
441+ if FeatureFlag . statsNewAppearance. enabled {
442+ DDLogInfo ( " Stats Period: Leave group fetching referrers. " )
443+ group. leave ( )
444+ }
419445 }
420446 }
421447
448+ if FeatureFlag . statsNewAppearance. enabled {
449+ group. enter ( )
450+ DDLogInfo ( " Stats Period: Enter group fetching published. " )
451+ }
422452 let topPublished = PublishedPostOperation ( service: service, for: period, date: date) { [ weak self] ( published: StatsPublishedPostsTimeIntervalData ? , error: Error ? ) in
423453 if error != nil {
424454 DDLogError ( " Stats Period: Error fetching published: \( String ( describing: error? . localizedDescription) ) " )
@@ -428,9 +458,17 @@ private extension StatsPeriodStore {
428458
429459 DispatchQueue . main. async {
430460 self ? . receivedPublished ( published, error)
461+ if FeatureFlag . statsNewAppearance. enabled {
462+ DDLogInfo ( " Stats Period: Leave group fetching published. " )
463+ group. leave ( )
464+ }
431465 }
432466 }
433467
468+ if FeatureFlag . statsNewAppearance. enabled {
469+ group. enter ( )
470+ DDLogInfo ( " Stats Period: Enter group fetching clicks. " )
471+ }
434472 let topClicks = PeriodOperation ( service: service, for: period, date: date) { [ weak self] ( clicks: StatsTopClicksTimeIntervalData ? , error: Error ? ) in
435473 if error != nil {
436474 DDLogError ( " Stats Period: Error fetching clicks: \( String ( describing: error? . localizedDescription) ) " )
@@ -440,9 +478,17 @@ private extension StatsPeriodStore {
440478
441479 DispatchQueue . main. async {
442480 self ? . receivedClicks ( clicks, error)
481+ if FeatureFlag . statsNewAppearance. enabled {
482+ DDLogInfo ( " Stats Period: Leave group fetching clicks. " )
483+ group. leave ( )
484+ }
443485 }
444486 }
445487
488+ if FeatureFlag . statsNewAppearance. enabled {
489+ group. enter ( )
490+ DDLogInfo ( " Stats Period: Enter group fetching authors. " )
491+ }
446492 let topAuthors = PeriodOperation ( service: service, for: period, date: date) { [ weak self] ( authors: StatsTopAuthorsTimeIntervalData ? , error: Error ? ) in
447493 if error != nil {
448494 DDLogError ( " Stats Period: Error fetching authors: \( String ( describing: error? . localizedDescription) ) " )
@@ -452,9 +498,17 @@ private extension StatsPeriodStore {
452498
453499 DispatchQueue . main. async {
454500 self ? . receivedAuthors ( authors, error)
501+ if FeatureFlag . statsNewAppearance. enabled {
502+ DDLogInfo ( " Stats Period: Leave group fetching authors. " )
503+ group. leave ( )
504+ }
455505 }
456506 }
457507
508+ if FeatureFlag . statsNewAppearance. enabled {
509+ group. enter ( )
510+ DDLogInfo ( " Stats Period: Enter group fetching search terms. " )
511+ }
458512 let topSearchTerms = PeriodOperation ( service: service, for: period, date: date) { [ weak self] ( searchTerms: StatsSearchTermTimeIntervalData ? , error: Error ? ) in
459513 if error != nil {
460514 DDLogError ( " Stats Period: Error fetching search terms: \( String ( describing: error? . localizedDescription) ) " )
@@ -464,9 +518,17 @@ private extension StatsPeriodStore {
464518
465519 DispatchQueue . main. async {
466520 self ? . receivedSearchTerms ( searchTerms, error)
521+ if FeatureFlag . statsNewAppearance. enabled {
522+ DDLogInfo ( " Stats Period: Leave group fetching search terms. " )
523+ group. leave ( )
524+ }
467525 }
468526 }
469527
528+ if FeatureFlag . statsNewAppearance. enabled {
529+ group. enter ( )
530+ DDLogInfo ( " Stats Period: Enter group fetching countries. " )
531+ }
470532 let topCountries = PeriodOperation ( service: service, for: period, date: date, limit: 0 ) { [ weak self] ( countries: StatsTopCountryTimeIntervalData ? , error: Error ? ) in
471533 if error != nil {
472534 DDLogError ( " Stats Period: Error fetching countries: \( String ( describing: error? . localizedDescription) ) " )
@@ -476,9 +538,17 @@ private extension StatsPeriodStore {
476538
477539 DispatchQueue . main. async {
478540 self ? . receivedCountries ( countries, error)
541+ if FeatureFlag . statsNewAppearance. enabled {
542+ DDLogInfo ( " Stats Period: Leave group fetching countries. " )
543+ group. leave ( )
544+ }
479545 }
480546 }
481547
548+ if FeatureFlag . statsNewAppearance. enabled {
549+ group. enter ( )
550+ DDLogInfo ( " Stats Period: Enter group fetching videos. " )
551+ }
482552 let topVideos = PeriodOperation ( service: service, for: period, date: date) { [ weak self] ( videos: StatsTopVideosTimeIntervalData ? , error: Error ? ) in
483553 if error != nil {
484554 DDLogError ( " Stats Period: Error fetching videos: \( String ( describing: error? . localizedDescription) ) " )
@@ -488,11 +558,19 @@ private extension StatsPeriodStore {
488558
489559 DispatchQueue . main. async {
490560 self ? . receivedVideos ( videos, error)
561+ if FeatureFlag . statsNewAppearance. enabled {
562+ DDLogInfo ( " Stats Period: Leave group fetching videos. " )
563+ group. leave ( )
564+ }
491565 }
492566 }
493567
494568 // 'limit' in this context is used for the 'num' parameter for the 'file-downloads' endpoint.
495569 // 'num' relates to the "number of periods to include in the query".
570+ if FeatureFlag . statsNewAppearance. enabled {
571+ group. enter ( )
572+ DDLogInfo ( " Stats Period: Enter group fetching file downloads. " )
573+ }
496574 let topFileDownloads = PeriodOperation ( service: service, for: period, date: date, limit: 1 ) { [ weak self] ( downloads: StatsFileDownloadsTimeIntervalData ? , error: Error ? ) in
497575 if error != nil {
498576 DDLogError ( " Stats Period: Error file downloads: \( String ( describing: error? . localizedDescription) ) " )
@@ -502,6 +580,10 @@ private extension StatsPeriodStore {
502580
503581 DispatchQueue . main. async {
504582 self ? . receivedFileDownloads ( downloads, error)
583+ if FeatureFlag . statsNewAppearance. enabled {
584+ DDLogInfo ( " Stats Period: Leave group fetching file downloads. " )
585+ group. leave ( )
586+ }
505587 }
506588 }
507589
@@ -516,6 +598,13 @@ private extension StatsPeriodStore {
516598 topVideos,
517599 topFileDownloads] ,
518600 waitUntilFinished: false )
601+
602+ if FeatureFlag . statsNewAppearance. enabled {
603+ group. notify ( queue: . main) { [ weak self] in
604+ DDLogInfo ( " Stats Period: Finished fetchAsyncData. " )
605+ self ? . persistToCoreData ( )
606+ }
607+ }
519608 }
520609
521610 func fetchSummaryLikesData( date: Date , period: StatsPeriodUnit ) {
0 commit comments