first step into refactoring attachmentsStore.js

This commit is contained in:
Javier Abadia 2014-04-27 18:33:30 +02:00
parent 02f913bb43
commit d5c106fa14

View File

@ -59,30 +59,31 @@ define([], function()
this.retrieve = function(attachmentId, callback)
{
if(this._db !== null)
console.assert(this._db !== null, "indexeddb not initialized");
var objectStore = this._db.transaction([OBJECT_STORE_NAME]).objectStore(OBJECT_STORE_NAME);
var request = objectStore.get(attachmentId);
request.onsuccess = function(event)
{
var objectStore = this._db.transaction([OBJECT_STORE_NAME]).objectStore(OBJECT_STORE_NAME);
var request = objectStore.get(attachmentId);
request.onsuccess = function(event)
{
var result = event.target.result;
if(!result){
callback(false,"not found");
}
else{
callback(true,result);
}
};
request.onerror = function(err)
{
console.log(err);
callback(false,err);
};
}
var result = event.target.result;
if(!result){
callback(false,"not found");
}
else{
callback(true,result);
}
};
request.onerror = function(err)
{
console.log(err);
callback(false,err);
};
};
this.getAttachmentsByFeatureId = function(featureLayerUrl,objectId,callback)
{
console.assert(this._db !== null, "indexeddb not initialized");
var featureId = featureLayerUrl + "/" + objectId;
var attachments = [];
@ -106,6 +107,8 @@ define([], function()
this.getAttachmentsByFeatureLayer = function(featureLayerUrl,callback)
{
console.assert(this._db !== null, "indexeddb not initialized");
var attachments = [];
var objectStore = this._db.transaction([OBJECT_STORE_NAME]).objectStore(OBJECT_STORE_NAME);
@ -128,6 +131,8 @@ define([], function()
this.getAllAttachments = function(callback)
{
console.assert(this._db !== null, "indexeddb not initialized");
var attachments = [];
var objectStore = this._db.transaction([OBJECT_STORE_NAME]).objectStore(OBJECT_STORE_NAME);
@ -148,6 +153,8 @@ define([], function()
this.deleteAttachmentsByFeatureId = function(featureLayerUrl,objectId,callback)
{
console.assert(this._db !== null, "indexeddb not initialized");
var featureId = featureLayerUrl + "/" + objectId;
var objectStore = this._db.transaction([OBJECT_STORE_NAME],"readwrite").objectStore(OBJECT_STORE_NAME);
@ -172,50 +179,42 @@ define([], function()
this.delete = function(attachmentId, callback)
{
if(this._db !== null)
console.assert(this._db !== null, "indexeddb not initialized");
var request = this._db.transaction([OBJECT_STORE_NAME],"readwrite")
.objectStore(OBJECT_STORE_NAME)
.delete(attachmentId);
request.onsuccess = function(event)
{
var request = this._db.transaction([OBJECT_STORE_NAME],"readwrite")
.objectStore(OBJECT_STORE_NAME)
.delete(attachmentId);
request.onsuccess = function(event)
{
setTimeout(function(){callback(true);},1);
};
request.onerror = function(err)
{
callback(false,err);
};
}
else
setTimeout(function(){callback(true);},1);
};
request.onerror = function(err)
{
callback(false,null);
}
callback(false,err);
};
};
this.deleteAll = function(callback)
{
if(this._db !== null)
console.assert(this._db !== null, "indexeddb not initialized");
var request = this._db.transaction([OBJECT_STORE_NAME],"readwrite")
.objectStore(OBJECT_STORE_NAME)
.clear();
request.onsuccess = function(event)
{
var request = this._db.transaction([OBJECT_STORE_NAME],"readwrite")
.objectStore(OBJECT_STORE_NAME)
.clear();
request.onsuccess = function(event)
{
callback(true);
};
request.onerror = function(err)
{
callback(false,err);
};
}
else
callback(true);
};
request.onerror = function(err)
{
callback(false,null);
}
callback(false,err);
};
};
this.replaceFeatureId = function(featureLayerUrl, oldId, newId, callback)
{
console.assert(this._db !== null, "indexeddb not initialized");
var featureId = featureLayerUrl + "/" + oldId;
var objectStore = this._db.transaction([OBJECT_STORE_NAME],"readwrite").objectStore(OBJECT_STORE_NAME);
@ -245,41 +244,37 @@ define([], function()
this.getUsage = function(callback)
{
if(this._db !== null){
var usage = { sizeBytes: 0, attachmentCount: 0 };
console.assert(this._db !== null, "indexeddb not initialized");
var transaction = this._db.transaction([OBJECT_STORE_NAME])
.objectStore(OBJECT_STORE_NAME)
.openCursor();
var usage = { sizeBytes: 0, attachmentCount: 0 };
console.log("dumping keys");
var transaction = this._db.transaction([OBJECT_STORE_NAME])
.objectStore(OBJECT_STORE_NAME)
.openCursor();
transaction.onsuccess = function(event)
{
var cursor = event.target.result;
if(cursor)
{
console.log(cursor.value.id, cursor.value.featureId, cursor.value.objectId);
var storedObject = cursor.value;
var json = JSON.stringify(storedObject);
usage.sizeBytes += json.length;
usage.attachmentCount += 1;
cursor.continue();
}
else
{
callback(usage,null);
}
}.bind(this);
transaction.onerror = function(err)
{
callback(null,err);
};
}
else
console.log("dumping keys");
transaction.onsuccess = function(event)
{
callback(null,null);
}
var cursor = event.target.result;
if(cursor)
{
console.log(cursor.value.id, cursor.value.featureId, cursor.value.objectId);
var storedObject = cursor.value;
var json = JSON.stringify(storedObject);
usage.sizeBytes += json.length;
usage.attachmentCount += 1;
cursor.continue();
}
else
{
callback(usage,null);
}
}.bind(this);
transaction.onerror = function(err)
{
callback(null,err);
};
};
this.init = function(callback)