1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-07-13 18:16:19 +02:00

port settings code to new db and refactors here n there

This commit is contained in:
Kushagra Gour
2018-01-08 00:11:24 +05:30
parent 3fe9f3f346
commit 97097f16c3
3 changed files with 128 additions and 127 deletions

View File

@ -1,44 +1,45 @@
(() => {
window.itemService = {
async getItem(id) {
var db = await window.db.getDb();
return db.doc(`items/${id}`).get().then(doc => {
var remoteDb = await window.db.getDb();
return remoteDb.doc(`items/${id}`).get().then(doc => {
return doc.data();
});
},
async getUserItemIds() {
if (window.user && window.user.items) {
return new Promise(resolve => {
resolve(window.user.items);
});
}
var remoteDb = await window.db.getDb();
return remoteDb.doc(`users/${window.user.uid}`).get().then(doc => {
return doc.data().items;
});
},
async getAllItems() {
var d = deferred();
var remoteDb = await window.db.getDb();
let itemIds = await this.getUserItemIds();
itemIds = Object.getOwnPropertyNames(itemIds || {});
console.log('itemids', itemIds);
remoteDb
.doc(`users/${window.user.uid}`)
.get()
.then(doc => {
return doc.data().items;
})
.then(itemIdsObj => {
var itemIds = Object.getOwnPropertyNames(itemIdsObj || {});
console.log('itemids', itemIds);
if (!itemIds.length) {
d.resolve([]);
}
if (!itemIds.length) {
d.resolve([]);
const items = [];
for (let i = 0; i < itemIds.length; i++) {
const id = itemIds[i];
utils.log('Starting to fetch item ', id);
this.getItem(id).then(item => {
items.push(item);
// Check if we have all items now.
if (itemIds.length === items.length) {
d.resolve(items);
}
var items = [];
for (let i = 0; i < itemIds.length; i++) {
const id = itemIds[i];
utils.log('Starting to fetch item ', id);
this.getItem(id).then(item => {
items.push(item);
// Check if we have all items now.
if (itemIds.length === items.length) {
d.resolve(items);
}
});
}
return items;
});
}
return d.promise;
},
@ -83,7 +84,20 @@
},
async setItemForUser(itemId) {
var remoteDb = await window.db.getDb();
if (window.IS_EXTENSION) {
return window.db.local.get(
{
items: {}
},
function(result) {
result.items[itemId] = true;
window.db.local.set({
items: result.items
});
}
);
}
const remoteDb = await window.db.getDb();
return remoteDb
.collection('users')
.doc(window.user.uid)