MOBILE-2873 sync: Fix course log syncing

main
Pau Ferrer Ocaña 2019-03-06 10:44:57 +01:00
parent af7872f862
commit a26fbeab92
3 changed files with 19 additions and 20 deletions

View File

@ -227,7 +227,7 @@ export class CoreCourseLogHelperProvider {
* @param {string} [siteId] Site ID. If not defined, current site.
* @return {Promise<any>} Promise resolved when done.
*/
syncAll(siteId?: string): Promise<any> {
syncSite(siteId?: string): Promise<any> {
return this.sitesProvider.getSite(siteId).then((site) => {
const siteId = site.getId();

View File

@ -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<any>} Promise resolved when done, rejected if failure.
*/
execute(siteId?: string, force?: boolean): Promise<any> {
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);
}
/**

View File

@ -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<any>} Promise resolved if sync is successful, rejected if sync fails.
*/
protected syncAllCoursesFunc(siteId?: string): Promise<any> {
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);
}
/**