Comparing version 0.5.2 to 0.5.3
@@ -193,2 +193,13 @@ 'use strict'; | ||
} | ||
_.each(schema.globalIndexes, function (keys) { | ||
if(hashKey[keys.hashKey]){ | ||
obj[keys.hashKey] = hashKey[keys.hashKey]; | ||
} | ||
if(hashKey[keys.rangeKey]){ | ||
obj[keys.rangeKey] = hashKey[keys.rangeKey]; | ||
} | ||
}); | ||
} else { | ||
@@ -282,3 +293,13 @@ obj[schema.hashKey] = hashKey; | ||
_.each(schema.globalIndexes, function (keys) { | ||
if(item[keys.hashKey]){ | ||
result[keys.hashKey] = internals.deserializeAttribute(item[keys.hashKey], schema.attrs[keys.hashKey]); | ||
} | ||
if(item[keys.rangeKey]){ | ||
result[keys.rangeKey] = internals.deserializeAttribute(item[keys.rangeKey], schema.attrs[keys.rangeKey]); | ||
} | ||
}); | ||
return result; | ||
}; |
{ | ||
"name": "vogels", | ||
"version": "0.5.2", | ||
"version": "0.5.3", | ||
"author": "Ryan Fitzgerald <ryan@codebrewstudios.com>", | ||
@@ -5,0 +5,0 @@ "description": "DynamoDB data mapper", |
@@ -73,3 +73,19 @@ 'use strict'; | ||
it('should handle global secondary index keys', function () { | ||
schema.String('email', {hashKey: true}); | ||
schema.Number('age'); | ||
schema.String('name'); | ||
schema.globalIndex('GameTitleIndex', { | ||
hashKey: 'age', | ||
rangeKey: 'name' | ||
}); | ||
var data = { email : 'test@example.com', age: 22, name: 'Foo Bar' }; | ||
var keys = serializer.buildKey(data, null, schema); | ||
keys.should.eql({email: {S: 'test@example.com'}, age: {N : '22'}, name: {S: 'Foo Bar'}}); | ||
}); | ||
}); | ||
describe('#deserializeKeys', function () { | ||
@@ -97,2 +113,17 @@ | ||
it('should global secondary index keys', function () { | ||
schema.String('email', {hashKey: true}); | ||
schema.Number('age'); | ||
schema.String('name'); | ||
schema.globalIndex('GameTitleIndex', { | ||
hashKey: 'age', | ||
rangeKey: 'name' | ||
}); | ||
var serializedItem = {email : {S : 'test@example.com'}, age : {N : '22'}, name : {S: 'Foo Bar'}}; | ||
var keys = serializer.deserializeKeys(schema, serializedItem); | ||
keys.should.eql({email: 'test@example.com', age: 22, name: 'Foo Bar'}); | ||
}); | ||
}); | ||
@@ -99,0 +130,0 @@ |
155154
3656