mirror of
https://github.com/chinchang/web-maker.git
synced 2025-07-13 18:16:19 +02:00
move merge saving fn to itemservice
This commit is contained in:
@ -65,6 +65,50 @@
|
||||
.catch(error => console.log(error));
|
||||
},
|
||||
|
||||
/**
|
||||
* Saves the passed items in the database.
|
||||
* @param {Array} items to be saved in DB
|
||||
*/
|
||||
saveItems(items) {
|
||||
var d = deferred();
|
||||
if (window.IS_EXTENSION) {
|
||||
// save new items
|
||||
window.db.local.set(items, d.resolve);
|
||||
// Push in new item IDs
|
||||
window.db.local.get(
|
||||
{
|
||||
items: {}
|
||||
},
|
||||
function(result) {
|
||||
/* eslint-disable guard-for-in */
|
||||
for (var id in items) {
|
||||
result.items[id] = true;
|
||||
}
|
||||
window.db.local.set({
|
||||
items: result.items
|
||||
});
|
||||
/* eslint-enable guard-for-in */
|
||||
}
|
||||
);
|
||||
} else {
|
||||
window.db.getDb().then(remoteDb => {
|
||||
const batch = remoteDb.batch();
|
||||
/* eslint-disable guard-for-in */
|
||||
for (var id in items) {
|
||||
batch.set(remoteDb.doc(`items/${id}`), items[id]);
|
||||
batch.update(remoteDb.doc(`users/${window.user.uid}`), {
|
||||
[`items.${id}`]: true
|
||||
});
|
||||
// Set these items on out cached user object too
|
||||
window.user.items[id] = true;
|
||||
}
|
||||
batch.commit().then(d.resolve);
|
||||
/* eslint-enable guard-for-in */
|
||||
});
|
||||
}
|
||||
return d.promise;
|
||||
},
|
||||
|
||||
async removeItem(id) {
|
||||
if (window.IS_EXTENSION) {
|
||||
var d = deferred();
|
||||
|
Reference in New Issue
Block a user