1 | var validations = require('./index')
|
2 |
|
3 | exports.types = {
|
4 | ReturnConsumedCapacity: {
|
5 | type: 'String',
|
6 | enum: ['INDEXES', 'TOTAL', 'NONE'],
|
7 | },
|
8 | AttributesToGet: {
|
9 | type: 'List',
|
10 | lengthGreaterThanOrEqual: 1,
|
11 | lengthLessThanOrEqual: 255,
|
12 | children: 'String',
|
13 | },
|
14 | TableName: {
|
15 | type: 'String',
|
16 | notNull: true,
|
17 | regex: '[a-zA-Z0-9_.-]+',
|
18 | lengthGreaterThanOrEqual: 3,
|
19 | lengthLessThanOrEqual: 255,
|
20 | },
|
21 | Key: {
|
22 | type: 'Map<AttributeValue>',
|
23 | notNull: true,
|
24 | children: 'AttrStruct<ValueStruct>',
|
25 | },
|
26 | ConsistentRead: 'Boolean',
|
27 | ProjectionExpression: {
|
28 | type: 'String',
|
29 | },
|
30 | ExpressionAttributeNames: {
|
31 | type: 'Map<java.lang.String>',
|
32 | children: 'String',
|
33 | },
|
34 | }
|
35 |
|
36 | exports.custom = function(data) {
|
37 |
|
38 | var msg = validations.validateExpressionParams(data, ['ProjectionExpression'], ['AttributesToGet'])
|
39 | if (msg) return msg
|
40 |
|
41 | for (var key in data.Key) {
|
42 | msg = validations.validateAttributeValue(data.Key[key])
|
43 | if (msg) return msg
|
44 | }
|
45 | if (data.AttributesToGet) {
|
46 | msg = validations.findDuplicate(data.AttributesToGet)
|
47 | if (msg) return 'One or more parameter values were invalid: Duplicate value in attribute name: ' + msg
|
48 | }
|
49 | msg = validations.validateExpressions(data)
|
50 | if (msg) return msg
|
51 | }
|