Skip to content

Commit 96ef76d

Browse files
fixes googleapis#38 datastore.get returns key/prop combined object.
1 parent 83f1a37 commit 96ef76d

File tree

4 files changed

+41
-37
lines changed

4 files changed

+41
-37
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ TODO
101101
Get operations require a valid key to retrieve the key identified entity from Datastore. Skip to the "Querying" section if you'd like to learn more about querying against Datastore.
102102

103103
~~~~ js
104-
ds.get(['Company', 123], function(err, key, obj) {
104+
ds.get(['Company', 123], function(err, entities) {
105105

106106
});
107107
// alternatively, you can retrieve multiple entities at once.
108-
ds.getAll([key1, key2, ...], function(err, keys, objs) {
108+
ds.getAll([key1, key2, ...], function(err, entities) {
109109

110110
});
111111
~~~~

lib/datastore/index.js

+9-8
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,11 @@ Transaction.prototype.finalize = function(callback) {
9999
* @param {Function} callback
100100
*/
101101
Transaction.prototype.get = function(key, callback) {
102-
this.getAll([key], function(err, keys, objs) {
103-
if (err || objs.length < 0) {
102+
this.getAll([key], function(err, results) {
103+
if (err || results.length < 0) {
104104
return callback(err);
105105
}
106-
return callback(null, keys[0], objs[0]);
106+
return callback(null, results[0]);
107107
});
108108
};
109109

@@ -127,12 +127,13 @@ Transaction.prototype.getAll = function(keys, callback) {
127127
if (err) {
128128
return callback(err);
129129
}
130-
var results = [], keys = [];
131-
resp.found.forEach(function(f) {
132-
keys.push(entity.keyFromKeyProto(f.entity.key));
133-
results.push(entity.entityFromEntityProto(f.entity));
130+
var results = resp.found.map(function(f) {
131+
return {
132+
key: entity.keyFromKeyProto(f.entity.key),
133+
properties: entity.entityFromEntityProto(f.entity)
134+
};
134135
});
135-
callback && callback(null, keys, results);
136+
callback && callback(null, results);
136137
});
137138
};
138139

regression/datastore.js

+13-13
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ describe('datastore', function() {
3939
ds.save(['Post', postKeyName], post, function(err, key) {
4040
if (err) return done(err);
4141
assert.equal(key[1], postKeyName);
42-
ds.get(['Post', postKeyName], function(err, key, obj) {
42+
ds.get(['Post', postKeyName], function(err, entity) {
4343
if (err) return done(err);
44-
assert.deepEqual(obj, post);
44+
assert.deepEqual(entity.properties, post);
4545
ds.del(['Post', postKeyName], function(err) {
4646
if (err) return done(err);
4747
done();
@@ -65,9 +65,9 @@ describe('datastore', function() {
6565
ds.save(['Post', postKeyId], post, function(err, key) {
6666
if (err) return done(err);
6767
assert.equal(key[1], postKeyId);
68-
ds.get(['Post', postKeyId], function(err, key, obj) {
68+
ds.get(['Post', postKeyId], function(err, entity) {
6969
if (err) return done(err);
70-
assert.deepEqual(obj, post);
70+
assert.deepEqual(entity.properties, post);
7171
ds.del(['Post', postKeyId], function(err) {
7272
if (err) return done(err);
7373
done();
@@ -90,9 +90,9 @@ describe('datastore', function() {
9090
if (err) return done(err);
9191
assert(key[1]);
9292
var assignedId = key[1];
93-
ds.get(['Post', assignedId], function(err, key, obj) {
93+
ds.get(['Post', assignedId], function(err, entity) {
9494
if (err) return done(err);
95-
assert.deepEqual(obj, post);
95+
assert.deepEqual(entity.properties, post);
9696
ds.del(['Post', assignedId], function(err) {
9797
if (err) return done(err);
9898
done();
@@ -126,9 +126,9 @@ describe('datastore', function() {
126126
assert.equal(keys.length,2);
127127
var firstKey = ['Post', keys[0][1]],
128128
secondKey = ['Post', keys[1][1]];
129-
ds.getAll([firstKey, secondKey], function(err, keys, objs) {
129+
ds.getAll([firstKey, secondKey], function(err, entities) {
130130
if (err) return done(err);
131-
assert.equal(objs.length, 2);
131+
assert.equal(entities.length, 2);
132132
ds.delAll([firstKey, secondKey], function(err) {
133133
if (err) return done(err);
134134
done();
@@ -350,9 +350,9 @@ describe('datastore', function() {
350350
'url': 'www.google.com'
351351
};
352352
ds.runInTransaction(function(t, tDone) {
353-
ds.get(key, function(err, keyRes, objRes) {
353+
ds.get(key, function(err, entity) {
354354
if (err) return done(err);
355-
if (objRes) {
355+
if (entity) {
356356
tDone();
357357
return;
358358
} else {
@@ -365,10 +365,10 @@ describe('datastore', function() {
365365
});
366366
}, function(err) {
367367
if (err) throw (err);
368-
ds.get(key, function(err, keyRes, objRes) {
368+
ds.get(key, function(err, entity) {
369369
if (err) return done(err);
370-
assert.deepEqual(objRes, obj);
371-
ds.del(keyRes, function(err) {
370+
assert.deepEqual(entity.properties, obj);
371+
ds.del(entity.key, function(err) {
372372
if (err) return done(err);
373373
done();
374374
})

test/datastore.js

+17-14
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,14 @@ describe('Dataset', function() {
8989
assert.equal(proto.keys.length, 1);
9090
callback(null, mockResp_get);
9191
};
92-
ds.get(['Kind', 123], function(err, key, obj) {
93-
assert.deepEqual(key, ['Kind', 5732568548769792]);
94-
assert.strictEqual(obj.name, 'Burcu');
95-
assert.deepEqual(obj.bytes, new Buffer('hello'));
96-
assert.strictEqual(obj.done, false);
97-
assert.deepEqual(obj.total, 6.7);
98-
assert.strictEqual(obj.createdat.getTime(), 978307200000);
92+
ds.get(['Kind', 123], function(err, entity) {
93+
var properties = entity.properties;
94+
assert.deepEqual(entity.key, ['Kind', 5732568548769792]);
95+
assert.strictEqual(properties.name, 'Burcu');
96+
assert.deepEqual(properties.bytes, new Buffer('hello'));
97+
assert.strictEqual(properties.done, false);
98+
assert.deepEqual(properties.total, 6.7);
99+
assert.strictEqual(properties.createdat.getTime(), 978307200000);
99100
done();
100101
});
101102
});
@@ -108,13 +109,15 @@ describe('Dataset', function() {
108109
callback(null, mockResp_get);
109110
};
110111
ds.getAll([
111-
['Kind', 123]], function(err, keys, objs) {
112-
assert.deepEqual(keys[0], ['Kind', 5732568548769792]);
113-
assert.strictEqual(objs[0].name, 'Burcu');
114-
assert.deepEqual(objs[0].bytes, new Buffer('hello'));
115-
assert.strictEqual(objs[0].done, false);
116-
assert.deepEqual(objs[0].total, 6.7);
117-
assert.strictEqual(objs[0].createdat.getTime(), 978307200000);
112+
['Kind', 123]], function(err, entities) {
113+
var entity = entities[0];
114+
var properties = entity.properties;
115+
assert.deepEqual(entity.key, ['Kind', 5732568548769792]);
116+
assert.strictEqual(properties.name, 'Burcu');
117+
assert.deepEqual(properties.bytes, new Buffer('hello'));
118+
assert.strictEqual(properties.done, false);
119+
assert.deepEqual(properties.total, 6.7);
120+
assert.strictEqual(properties.createdat.getTime(), 978307200000);
118121
done();
119122
});
120123
});

0 commit comments

Comments
 (0)