UNPKG

845 BJavaScriptView Raw
1var db = require('../db')
2
3module.exports = function getItem(store, data, cb) {
4
5 store.getTable(data.TableName, function(err, table) {
6 if (err) return cb(err)
7
8 if ((err = db.validateKey(data.Key, table)) != null) return cb(err)
9
10 if ((err = db.validateKeyPaths((data._projection || {}).nestedPaths, table)) != null) return cb(err)
11
12 var itemDb = store.getItemDb(data.TableName), key = db.createKey(data.Key, table)
13
14 itemDb.get(key, function(err, item) {
15 if (err && err.name != 'NotFoundError') return cb(err)
16
17 var returnObj = {}, paths = data._projection ? data._projection.paths : data.AttributesToGet
18
19 if (item) {
20 returnObj.Item = paths ? db.mapPaths(paths, item) : item
21 }
22
23 returnObj.ConsumedCapacity = db.addConsumedCapacity(data, true, item)
24
25 cb(null, returnObj)
26 })
27 })
28}