vogels icon indicating copy to clipboard operation
vogels copied to clipboard

update fails if adding zero to number set

Open SamMackrill opened this issue 10 years ago • 0 comments

e.g. for

    var uploadedFiles = vogels.define('UploadedFiles', {
        hashKey: 'AccountId',
        rangeKey: 'FileId',
        timestamps: true,
        schema: {
            AccountId: Joi.string(),
            FileId: Joi.string(),
            FileName: Joi.string(),
            Key: vogels.types.uuid(),
            UploadId: Joi.string(),
            Chunks: vogels.types.numberSet(),
        },
        tableName: 'UploadedFiles'
    });

Fails when doing:

    uploadedFiles.update({
        AccountId: userParam.IdentityId, 
        FileId: dbKey, 
        Chunks: { $add : chunk },
    }, 
        function (error, data) {
        if (error) {
            context.fail(error);
        }
        else {
            context.succeed(data);
        }
    });

if chunk=0 all other integers seem OK

InvalidSetType: Sets can contain string, number, or binary values at Set.util.inherit.detectType (/var/task/node_modules/aws-sdk/lib/dynamodb/set.js:30:24) at Set.util.inherit.initialize (/var/task/node_modules/aws-sdk/lib/dynamodb/set.js:14:10) at new Set (/var/task/node_modules/aws-sdk/lib/dynamodb/set.js:8:10) at DocumentClient.AWS.DynamoDB.DocumentClient.AWS.util.inherit.createSet (/var/task/node_modules/aws-sdk/lib/dynamodb/document_client.js:451:12) at Object.internals.createSet (/var/task/node_modules/vogels/lib/serializer.js:17:32) at Object.internals.serialize.numberSet (/var/task/node_modules/vogels/lib/serializer.js:52:22) at Object.internals.serializeAttribute.serializer.serializeAttribute (/var/task/node_modules/vogels/lib/serializer.js:94:22) at /var/task/node_modules/vogels/lib/expressions.js:70:44 at /var/task/node_modules/lodash/index.js:2523:13 at /var/task/node_modules/lodash/index.js:3073:15

get-around use: Chunks: { $add : [chunk] },

SamMackrill avatar Jan 28 '16 15:01 SamMackrill