dynamodb-storage-backend
Advanced tools
Comparing version
@@ -116,2 +116,16 @@ 'use strict'; | ||
/** | ||
* Delete entity content container. | ||
* | ||
* @param entityId | ||
* Entity id | ||
* @param callback | ||
*/ | ||
}, { | ||
key: 'deleteEntityContainer', | ||
value: function deleteEntityContainer(entityId, callback) { | ||
this.deleteDataItem(this.getStorageTableName(), entityId, callback); | ||
} | ||
/** | ||
* Save data to DynamoDB. | ||
@@ -165,2 +179,27 @@ * | ||
/** | ||
* Delete data item. | ||
* | ||
* @param table | ||
* @param key data | ||
* @param callback | ||
*/ | ||
}, { | ||
key: 'deleteDataItem', | ||
value: function deleteDataItem(table, itemKey, callback) { | ||
var _this3 = this; | ||
var dynamodb = this._registry.get("properties", 'dynamodb'); | ||
var params = { | ||
TableName: table, | ||
Key: this.encodeMap(itemKey) | ||
}; | ||
// TODO: Handle throttling | ||
// TODO: Handle eventually consisency issues... | ||
dynamodb.deleteItem(params, function (err, result) { | ||
callback(err, _this3.decodeMap(result.Item)); | ||
}); | ||
} | ||
/** | ||
* Load batch of data items. | ||
@@ -554,3 +593,3 @@ * | ||
value: function installSchema(schema, options, callback) { | ||
var _this3 = this; | ||
var _this4 = this; | ||
@@ -565,3 +604,3 @@ if (!schema.hasOwnProperty('TableName')) return callback(new Error("Missing required 'TableName' field")); | ||
var dynamodb = _this3._registry.get("properties", 'dynamodb'); | ||
var dynamodb = _this4._registry.get("properties", 'dynamodb'); | ||
@@ -638,3 +677,3 @@ dynamodb.createTable(schema, function (err, data) { | ||
value: function uninstallSchema(schema, options, callback) { | ||
var _this4 = this; | ||
var _this5 = this; | ||
@@ -649,3 +688,3 @@ if (!schema.hasOwnProperty('TableName')) return callback(new Error("Missing required 'TableName' field")); | ||
var dynamodb = _this4._registry.get("properties", 'dynamodb'); | ||
var dynamodb = _this5._registry.get("properties", 'dynamodb'); | ||
@@ -652,0 +691,0 @@ dynamodb.deleteTable({ TableName: schema.TableName }, function (err, data) { |
{ | ||
"name": "dynamodb-storage-backend", | ||
"version": "1.0.7", | ||
"version": "1.0.8", | ||
"description": "DynamoDB storage backend", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -79,2 +79,13 @@ import DomainMap from 'domain-map' | ||
/** | ||
* Delete entity content container. | ||
* | ||
* @param entityId | ||
* Entity id | ||
* @param callback | ||
*/ | ||
deleteEntityContainer(entityId, callback) { | ||
this.deleteDataItem(this.getStorageTableName(), entityId, callback); | ||
} | ||
/** | ||
* Save data to DynamoDB. | ||
@@ -120,2 +131,22 @@ * | ||
/** | ||
* Delete data item. | ||
* | ||
* @param table | ||
* @param key data | ||
* @param callback | ||
*/ | ||
deleteDataItem(table, itemKey, callback) { | ||
let dynamodb = this._registry.get("properties", 'dynamodb'); | ||
let params = { | ||
TableName: table, | ||
Key: this.encodeMap(itemKey) | ||
} | ||
// TODO: Handle throttling | ||
// TODO: Handle eventually consisency issues... | ||
dynamodb.deleteItem(params, (err, result) => { | ||
callback(err, this.decodeMap(result.Item)); | ||
}) | ||
} | ||
/** | ||
* Load batch of data items. | ||
@@ -122,0 +153,0 @@ * |
@@ -108,3 +108,3 @@ import DynamoDBStorageBackend from "./../../src/index" | ||
describe('loadEntityContainers', () => { | ||
it('Should should items as patch', done => { | ||
it('Should load items as patch', done => { | ||
let entityTypeId = 'test'; | ||
@@ -111,0 +111,0 @@ |
@@ -149,11 +149,28 @@ import DynamoDBStorageBackend from "./../../src/index" | ||
let testItem = Object.assign({}, itemKey, fields); | ||
backend.saveEntityContainer(itemKey, fields, err => { | ||
if (err) | ||
return done(err); | ||
backend.loadEntityContainer(itemKey, (err, container) => { | ||
if (err) | ||
return done(err); | ||
if (!equal(testItem,container)) | ||
if (!equal(testItem, container)) | ||
return done("Loaded DynamoDB container is not expected."); | ||
done(); | ||
backend.deleteEntityContainer(itemKey, (err, result)=> { | ||
if (err) | ||
return done(err); | ||
backend.loadEntityContainer(itemKey, (err, container) => { | ||
if (err) | ||
return done(err); | ||
if (container) | ||
done(new Error("It didn't delete entity container")); | ||
else | ||
done(); | ||
}); | ||
}) | ||
}); | ||
@@ -160,0 +177,0 @@ }); |
47534
4.49%1469
5.3%