diff --git a/src/addon/calendar/providers/calendar.ts b/src/addon/calendar/providers/calendar.ts index 741160a88..318800396 100644 --- a/src/addon/calendar/providers/calendar.ts +++ b/src/addon/calendar/providers/calendar.ts @@ -514,7 +514,7 @@ export class AddonCalendarProvider { notificationtime: e.notificationtime || -1 }; - return db.insertOrUpdateRecord(this.EVENTS_TABLE, eventRecord, { id: eventRecord.id }); + return db.insertRecord(this.EVENTS_TABLE, eventRecord); })); }); @@ -539,7 +539,7 @@ export class AddonCalendarProvider { event.notificationtime = time; - return site.getDb().insertOrUpdateRecord(this.EVENTS_TABLE, event, { id: event.id }).then(() => { + return site.getDb().insertRecord(this.EVENTS_TABLE, event).then(() => { return this.scheduleEventNotification(event, time); }); }); diff --git a/src/addon/messages/providers/messages-offline.ts b/src/addon/messages/providers/messages-offline.ts index ee8c5a7dd..a2243f6b9 100644 --- a/src/addon/messages/providers/messages-offline.ts +++ b/src/addon/messages/providers/messages-offline.ts @@ -148,11 +148,7 @@ export class AddonMessagesOfflineProvider { deviceoffline: this.appProvider.isOnline() ? 0 : 1 }; - return site.getDb().insertOrUpdateRecord(this.MESSAGES_TABLE, entry, { - touserid: toUserId, - smallmessage: message, - timecreated: entry.timecreated - }).then(() => { + return site.getDb().insertRecord(this.MESSAGES_TABLE, entry).then(() => { return entry; }); }); @@ -173,11 +169,7 @@ export class AddonMessagesOfflineProvider { data = { deviceoffline: value ? 1 : 0 }; messages.forEach((message) => { - promises.push(db.insertOrUpdateRecord(this.MESSAGES_TABLE, data, { - touserid: message.touserid, - smallmessage: message.smallmessage, - timecreated: message.timecreated - })); + promises.push(db.insertRecord(this.MESSAGES_TABLE, data)); }); return Promise.all(promises); diff --git a/src/addon/notes/providers/notes-offline.ts b/src/addon/notes/providers/notes-offline.ts index c285c7428..597458ef8 100644 --- a/src/addon/notes/providers/notes-offline.ts +++ b/src/addon/notes/providers/notes-offline.ts @@ -218,13 +218,8 @@ export class AddonNotesOfflineProvider { created: now, lastmodified: now }; - const conditions = { - userid: userId, - content: content, - created: now - }; - return site.getDb().insertOrUpdateRecord(this.NOTES_TABLE, data, conditions).then(() => { + return site.getDb().insertRecord(this.NOTES_TABLE, data).then(() => { return data; }); }); diff --git a/src/addon/pushnotifications/providers/pushnotifications.ts b/src/addon/pushnotifications/providers/pushnotifications.ts index 9922269bb..eec83e6ff 100644 --- a/src/addon/pushnotifications/providers/pushnotifications.ts +++ b/src/addon/pushnotifications/providers/pushnotifications.ts @@ -402,7 +402,7 @@ export class AddonPushNotificationsProvider { number: value }; - return this.appDB.insertOrUpdateRecord(this.BADGE_TABLE, entry, {siteid: siteId, addon: addon}).then(() => { + return this.appDB.insertRecord(this.BADGE_TABLE, entry).then(() => { return value; }); } diff --git a/src/classes/site.ts b/src/classes/site.ts index 330b59ea3..3846ae746 100644 --- a/src/classes/site.ts +++ b/src/classes/site.ts @@ -780,7 +780,7 @@ export class CoreSite { entry.key = preSets.cacheKey; } - return this.db.insertOrUpdateRecord(this.WS_CACHE_TABLE, entry, { id: id }); + return this.db.insertRecord(this.WS_CACHE_TABLE, entry); }); } diff --git a/src/classes/sqlitedb.ts b/src/classes/sqlitedb.ts index efef5527d..fdf17f59b 100644 --- a/src/classes/sqlitedb.ts +++ b/src/classes/sqlitedb.ts @@ -625,7 +625,7 @@ export class SQLiteDB { questionMarks = ',?'.repeat(keys.length).substr(1); return [ - `INSERT INTO ${table} (${fields}) VALUES (${questionMarks})`, + `INSERT OR REPLACE INTO ${table} (${fields}) VALUES (${questionMarks})`, keys.map((key) => data[key]) ]; } @@ -644,24 +644,6 @@ export class SQLiteDB { }); } - /** - * Insert or update a record. - * - * @param {string} table The database table. - * @param {object} data An object with the fields to insert/update: fieldname=>fieldvalue. - * @param {object} conditions The conditions to check if the record already exists (and to update it). - * @return {Promise} Promise resolved with done. - */ - insertOrUpdateRecord(table: string, data: object, conditions: object): Promise { - return this.getRecord(table, conditions).then(() => { - // It exists, update it. - return this.updateRecords(table, data, conditions); - }).catch(() => { - // Doesn't exist, insert it. - return this.insertRecord(table, data); - }); - } - /** * Insert a record into a table and return the "rowId" field. * diff --git a/src/core/course/providers/course.ts b/src/core/course/providers/course.ts index 083ed039f..a491ab610 100644 --- a/src/core/course/providers/course.ts +++ b/src/core/course/providers/course.ts @@ -699,7 +699,7 @@ export class CoreCourseProvider { previousDownloadTime: previousDownloadTime }; - return site.getDb().insertOrUpdateRecord(this.COURSE_STATUS_TABLE, data, { id: courseId }); + return site.getDb().insertRecord(this.COURSE_STATUS_TABLE, data); } }).then(() => { // Success inserting, trigger event. diff --git a/src/core/course/providers/module-prefetch-delegate.ts b/src/core/course/providers/module-prefetch-delegate.ts index 84f4b0b15..0fac45323 100644 --- a/src/core/course/providers/module-prefetch-delegate.ts +++ b/src/core/course/providers/module-prefetch-delegate.ts @@ -417,7 +417,9 @@ export class CoreCourseModulePrefetchDelegate extends CoreDelegate { courseId: courseId, time: this.timeUtils.timestamp() }; - site.getDb().insertOrUpdateRecord(this.CHECK_UPDATES_TIMES_TABLE, entry, { courseId: courseId }); + site.getDb().insertRecord(this.CHECK_UPDATES_TIMES_TABLE, entry).catch(() => { + // Ignore errors. + }); return this.treatCheckUpdatesResult(data.toCheck, response, result); }).catch((error) => { diff --git a/src/core/emulator/providers/local-notifications.ts b/src/core/emulator/providers/local-notifications.ts index f59120623..50f9ea52a 100644 --- a/src/core/emulator/providers/local-notifications.ts +++ b/src/core/emulator/providers/local-notifications.ts @@ -671,7 +671,7 @@ export class LocalNotificationsMock extends LocalNotifications { notification = Object.assign({}, notification); // Clone the object. notification.triggered = !!triggered; - return this.appDB.insertOrUpdateRecord(this.DESKTOP_NOTIFS_TABLE, notification, { id: notification.id }); + return this.appDB.insertRecord(this.DESKTOP_NOTIFS_TABLE, notification); } /** diff --git a/src/core/user/providers/user.ts b/src/core/user/providers/user.ts index 128f9fc93..7dfc1ae0e 100644 --- a/src/core/user/providers/user.ts +++ b/src/core/user/providers/user.ts @@ -383,7 +383,7 @@ export class CoreUserProvider { profileimageurl: avatar }; - return site.getDb().insertOrUpdateRecord(this.USERS_TABLE, userRecord, { id: userId }); + return site.getDb().insertRecord(this.USERS_TABLE, userRecord); }); } diff --git a/src/providers/config.ts b/src/providers/config.ts index 554ee3b21..c34166080 100644 --- a/src/providers/config.ts +++ b/src/providers/config.ts @@ -81,6 +81,6 @@ export class CoreConfigProvider { * @return {Promise} Promise resolved when done. */ set(name: string, value: boolean | number | string): Promise { - return this.appDB.insertOrUpdateRecord(this.TABLE_NAME, { name: name, value: value }, { name: name }); + return this.appDB.insertRecord(this.TABLE_NAME, { name: name, value: value }); } } diff --git a/src/providers/cron.ts b/src/providers/cron.ts index 930d324a2..4aa968ded 100644 --- a/src/providers/cron.ts +++ b/src/providers/cron.ts @@ -459,7 +459,7 @@ export class CoreCronDelegate { value: time }; - return this.appDB.insertOrUpdateRecord(this.CRON_TABLE, entry, { id: id }); + return this.appDB.insertRecord(this.CRON_TABLE, entry); } /** diff --git a/src/providers/filepool.ts b/src/providers/filepool.ts index bb1ded4a5..115964a7c 100644 --- a/src/providers/filepool.ts +++ b/src/providers/filepool.ts @@ -477,7 +477,7 @@ export class CoreFilepoolProvider { componentId: componentId || '' }; - return db.insertOrUpdateRecord(this.LINKS_TABLE, newEntry, { fileId: fileId }); + return db.insertRecord(this.LINKS_TABLE, newEntry); }); } @@ -544,7 +544,7 @@ export class CoreFilepoolProvider { values.fileId = fileId; return this.sitesProvider.getSiteDb(siteId).then((db) => { - return db.insertOrUpdateRecord(this.FILES_TABLE, values, { fileId: fileId }); + return db.insertRecord(this.FILES_TABLE, values); }); } @@ -2766,7 +2766,7 @@ export class CoreFilepoolProvider { // The package already has this status, no need to change it. promise = Promise.resolve(); } else { - promise = site.getDb().insertOrUpdateRecord(this.PACKAGES_TABLE, packageEntry, { id: packageId }); + promise = site.getDb().insertRecord(this.PACKAGES_TABLE, packageEntry); } return promise.then(() => { diff --git a/src/providers/local-notifications.ts b/src/providers/local-notifications.ts index c3339dfcf..4d0541514 100644 --- a/src/providers/local-notifications.ts +++ b/src/providers/local-notifications.ts @@ -500,6 +500,6 @@ export class CoreLocalNotificationsProvider { at: parseInt(notification.at, 10) }; - return this.appDB.insertOrUpdateRecord(this.TRIGGERED_TABLE, entry, { id: notification.id }); + return this.appDB.insertRecord(this.TRIGGERED_TABLE, entry); } } diff --git a/src/providers/sites.ts b/src/providers/sites.ts index 53154c12a..ac30cd79f 100644 --- a/src/providers/sites.ts +++ b/src/providers/sites.ts @@ -623,7 +623,7 @@ export class CoreSitesProvider { loggedOut: 0 }; - return this.appDB.insertOrUpdateRecord(this.SITES_TABLE, entry, { id: id }); + return this.appDB.insertRecord(this.SITES_TABLE, entry); } /** @@ -895,7 +895,7 @@ export class CoreSitesProvider { siteId: siteId }; - return this.appDB.insertOrUpdateRecord(this.CURRENT_SITE_TABLE, entry, { id: 1 }).then(() => { + return this.appDB.insertRecord(this.CURRENT_SITE_TABLE, entry).then(() => { this.eventsProvider.trigger(CoreEventsProvider.LOGIN, {}, siteId); }); } diff --git a/src/providers/sync.ts b/src/providers/sync.ts index 2003b488d..9137e997f 100644 --- a/src/providers/sync.ts +++ b/src/providers/sync.ts @@ -142,7 +142,7 @@ export class CoreSyncProvider { data.component = component; data.id = id; - return db.insertOrUpdateRecord(this.SYNC_TABLE, data, { component: component, id: id }); + return db.insertRecord(this.SYNC_TABLE, data); }); }