MOBILE-2873 sync: Fix course log syncing
parent
af7872f862
commit
a26fbeab92
|
@ -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();
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue