Comparing version 0.0.6 to 0.0.7
@@ -15,2 +15,3 @@ 'use strict'; | ||
schema.Number('age'); | ||
schema.NumberSet('scores'); | ||
}); | ||
@@ -53,1 +54,5 @@ | ||
.exec(printResults); | ||
Account.scan() | ||
.where('scores').contains(2) | ||
.exec(printResults); |
@@ -144,3 +144,3 @@ 'use strict'; | ||
var item = self.serializer.serializeItem(self.table.schema, data); | ||
var item = self.serializer.serializeItem(self.table.schema, data, {convertSets: true}); | ||
@@ -147,0 +147,0 @@ return item[key]; |
@@ -132,3 +132,3 @@ 'use strict'; | ||
var item = self.serializer.serializeItem(self.table.schema, data); | ||
var item = self.serializer.serializeItem(self.table.schema, data, {convertSets: true}); | ||
@@ -135,0 +135,0 @@ return item[key]; |
@@ -147,3 +147,3 @@ 'use strict'; | ||
internals.serializeAttribute = function (value, attr) { | ||
internals.serializeAttribute = function (value, attr, options) { | ||
if(!attr) { | ||
@@ -153,2 +153,4 @@ return null; | ||
options = options || {}; | ||
var type = attr.type.type; | ||
@@ -166,4 +168,10 @@ | ||
case 'NumberSet': | ||
if(options.convertSets) { | ||
return serialize.number(value); | ||
} | ||
return serialize.numberSet(value); | ||
case 'StringSet': | ||
if(options.convertSets) { | ||
return serialize.string(value); | ||
} | ||
return serialize.stringSet(value); | ||
@@ -195,3 +203,3 @@ default: | ||
serializer.serializeItem = function (schema, item) { | ||
serializer.serializeItem = function (schema, item, options) { | ||
if(!item) { | ||
@@ -203,3 +211,3 @@ return null; | ||
if(_.has(item, key)) { | ||
result[key] = internals.serializeAttribute(item[key], attr); | ||
result[key] = internals.serializeAttribute(item[key], attr, options); | ||
} | ||
@@ -206,0 +214,0 @@ |
{ | ||
"name": "vogels", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"author": "Ryan Fitzgerald <ryan@codebrewstudios.com>", | ||
@@ -5,0 +5,0 @@ "description": "DynamoDB data mapper", |
@@ -160,2 +160,3 @@ 'use strict'; | ||
schema.Date('created', {secondaryIndex: true}); | ||
schema.NumberSet('scores'); | ||
}); | ||
@@ -230,2 +231,9 @@ | ||
it('should not pass a number set when making contains call', function() { | ||
serializer.serializeItem.withArgs(schema, {scores: 2}, {convertSets: true}).returns({scores: {N: '2'}}); | ||
scan = scan.where('scores').contains(2); | ||
scan.request.ScanFilter.scores.should.eql({AttributeValueList: [{N: '2'}], ComparisonOperator: 'CONTAINS'}); | ||
}); | ||
it('should have not contains clause', function() { | ||
@@ -232,0 +240,0 @@ serializer.serializeItem.returns({email: {S: 'foo@example.com'}}); |
@@ -154,2 +154,9 @@ 'use strict'; | ||
it('should convert string set to a string', function () { | ||
schema.StringSet('names'); | ||
var item = serializer.serializeItem(schema, {names: 'Bob'}, {convertSets: true}); | ||
item.should.eql({names: {S: 'Bob'}}); | ||
}); | ||
}); | ||
@@ -156,0 +163,0 @@ |
73199
1952