1 | var db = require('../db')
|
2 |
|
3 | module.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 | }
|