From a26fbeab92bfdef8ab7d857320efd6569d12398b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Wed, 6 Mar 2019 10:44:57 +0100 Subject: [PATCH] MOBILE-2873 sync: Fix course log syncing --- src/core/course/providers/log-helper.ts | 2 +- .../course/providers/sync-cron-handler.ts | 12 ++------- src/core/course/providers/sync.ts | 25 ++++++++++++------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/core/course/providers/log-helper.ts b/src/core/course/providers/log-helper.ts index 9ec8ea25b..89b76231f 100644 --- a/src/core/course/providers/log-helper.ts +++ b/src/core/course/providers/log-helper.ts @@ -227,7 +227,7 @@ export class CoreCourseLogHelperProvider { * @param {string} [siteId] Site ID. If not defined, current site. * @return {Promise} Promise resolved when done. */ - syncAll(siteId?: string): Promise { + syncSite(siteId?: string): Promise { return this.sitesProvider.getSite(siteId).then((site) => { const siteId = site.getId(); diff --git a/src/core/course/providers/sync-cron-handler.ts b/src/core/course/providers/sync-cron-handler.ts index 1ea0b3784..8f3adc3a6 100644 --- a/src/core/course/providers/sync-cron-handler.ts +++ b/src/core/course/providers/sync-cron-handler.ts @@ -15,7 +15,6 @@ import { Injectable } from '@angular/core'; import { CoreCronHandler } from '@providers/cron'; import { CoreCourseSyncProvider } from './sync'; -import { CoreCourseLogHelperProvider } from './log-helper'; /** * Synchronization cron handler. @@ -24,7 +23,7 @@ import { CoreCourseLogHelperProvider } from './log-helper'; export class CoreCourseSyncCronHandler implements CoreCronHandler { name = 'CoreCourseSyncCronHandler'; - constructor(private courseSync: CoreCourseSyncProvider, private logHelper: CoreCourseLogHelperProvider) {} + constructor(private courseSync: CoreCourseSyncProvider) {} /** * Execute the process. @@ -35,14 +34,7 @@ export class CoreCourseSyncCronHandler implements CoreCronHandler { * @return {Promise} Promise resolved when done, rejected if failure. */ execute(siteId?: string, force?: boolean): Promise { - const promises = []; - // Sync activity logs even if the activity does not have sync handler. - // This will sync all the activity logs even if there's nothing else to sync and also recources. - promises.push(this.logHelper.syncAll(siteId)); - - promises.push(this.courseSync.syncAllCourses(siteId)); - - return Promise.all(promises); + return this.courseSync.syncAllCourses(siteId); } /** diff --git a/src/core/course/providers/sync.ts b/src/core/course/providers/sync.ts index 14c66dd08..887eaa1c0 100644 --- a/src/core/course/providers/sync.ts +++ b/src/core/course/providers/sync.ts @@ -13,18 +13,19 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { CoreLoggerProvider } from '@providers/logger'; +import { TranslateService } from '@ngx-translate/core'; import { CoreSyncBaseProvider } from '@classes/base-sync'; +import { CoreLoggerProvider } from '@providers/logger'; import { CoreSitesProvider } from '@providers/sites'; import { CoreAppProvider } from '@providers/app'; import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreTextUtilsProvider } from '@providers/utils/text'; import { CoreTimeUtilsProvider } from '@providers/utils/time'; +import { CoreEventsProvider } from '@providers/events'; +import { CoreSyncProvider } from '@providers/sync'; import { CoreCourseOfflineProvider } from './course-offline'; import { CoreCourseProvider } from './course'; -import { CoreEventsProvider } from '@providers/events'; -import { TranslateService } from '@ngx-translate/core'; -import { CoreSyncProvider } from '@providers/sync'; +import { CoreCourseLogHelperProvider } from './log-helper'; /** * Service to sync course offline data. This only syncs the offline data of the course itself, not the offline data of @@ -39,7 +40,7 @@ export class CoreCourseSyncProvider extends CoreSyncBaseProvider { protected appProvider: CoreAppProvider, private courseOffline: CoreCourseOfflineProvider, private eventsProvider: CoreEventsProvider, private courseProvider: CoreCourseProvider, translate: TranslateService, private utils: CoreUtilsProvider, protected textUtils: CoreTextUtilsProvider, - syncProvider: CoreSyncProvider, timeUtils: CoreTimeUtilsProvider) { + syncProvider: CoreSyncProvider, timeUtils: CoreTimeUtilsProvider, protected logHelper: CoreCourseLogHelperProvider) { super('CoreCourseSyncProvider', loggerProvider, sitesProvider, appProvider, syncProvider, textUtils, translate, timeUtils); } @@ -61,9 +62,13 @@ export class CoreCourseSyncProvider extends CoreSyncBaseProvider { * @return {Promise} Promise resolved if sync is successful, rejected if sync fails. */ protected syncAllCoursesFunc(siteId?: string): Promise { - return this.courseOffline.getAllManualCompletions(siteId).then((completions) => { + const p1 = []; + + p1.push(this.logHelper.syncSite(siteId)); + + p1.push(this.courseOffline.getAllManualCompletions(siteId).then((completions) => { // Sync all courses. - const promises = completions.map((completion) => { + const p2 = completions.map((completion) => { return this.syncCourseIfNeeded(completion.courseid, siteId).then((result) => { if (result && result.updated) { // Sync successful, send event. @@ -75,8 +80,10 @@ export class CoreCourseSyncProvider extends CoreSyncBaseProvider { }); }); - return Promise.all(promises); - }); + return Promise.all(p2); + })); + + return Promise.all(p1); } /**