Skip to content

Commit

Permalink
have nedb passing back meta
Browse files Browse the repository at this point in the history
  • Loading branch information
Simon Bishop authored and Simon Bishop committed Jun 3, 2016
1 parent 36b3f90 commit a52f12d
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 16 deletions.
32 changes: 16 additions & 16 deletions lib/services/data_embedded/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -543,35 +543,35 @@ DataEmbeddedService.prototype.upsert = function(path, data, options, callback){

}

DataEmbeddedService.prototype.transform = function(dataObj, additionalMeta){
DataEmbeddedService.prototype.transform = function(dataObj, meta){
var transformed = {};

transformed.data = dataObj.data;

transformed._meta = {
path:dataObj._id,
tag:dataObj._tag
}

if (dataObj.created)
transformed._meta.created = dataObj.created;
if (!meta){
meta = {};

if (dataObj.modified)
transformed._meta.modified = dataObj.modified;
if (dataObj.created)
meta.created = dataObj.created;

if (additionalMeta){
for (var additionalProperty in additionalMeta)
transformed._meta[additionalProperty] = additionalMeta[additionalProperty];
if (dataObj.modified)
meta.modified = dataObj.modified;
}

transformed._meta = meta;
transformed._meta.path = dataObj._id;

if (dataObj._tag)
transformed._meta.tag = dataObj._tag;

return transformed;
}

DataEmbeddedService.prototype.__upsertInternal = function(path, setData, options, dataWasMerged, callback){
var _this = this;
var setParameters = {$set: {"data":setData.data, "_id":setData._meta.path}};

_this.db(path).update({"_id":path}, setParameters, {upsert:true, returnUpdatedDocs:true}, function(err, response, created) {
_this.db(path).update({"_id":path}, setParameters, {upsert:true}, function(err, response, created, upsert, meta) {

if (err){

Expand All @@ -585,7 +585,7 @@ DataEmbeddedService.prototype.__upsertInternal = function(path, setData, options

if (dataWasMerged && !options.tag) {
if (created) return callback(null, _this.transform(created));
return callback(null, _this.transform(setData));
return callback(null, _this.transform(setData, meta));
}

if (dataWasMerged && options.tag){ // we have a prefetched object, and we want to tag it
Expand All @@ -605,7 +605,7 @@ DataEmbeddedService.prototype.__upsertInternal = function(path, setData, options

setData._id = path;
setData.modified = Date.now();
callback(null, _this.transform(setData));
callback(null, _this.transform(setData, meta));

}

Expand Down
1 change: 1 addition & 0 deletions lib/services/pubsub/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,7 @@ PubSubService.prototype.emitToAudience = function(publication, channel) {
decoupledPublication = JSON.parse(serialized);
}

//TODO are these necessary?
decoupledPublication._meta.channel = channel.toString();
decoupledPublication._meta.sessionId = _this.__sessions[sessionIndex].session.id;

Expand Down
18 changes: 18 additions & 0 deletions test/9_eventemitter_meta.js
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,9 @@ describe('9_eventemitter_meta.js', function () {
expect(result._meta.modified).to.not.be(null);
expect(result._meta.modified).to.not.be(undefined);

expect(result._meta.path).to.not.be(null);
expect(result._meta.path).to.not.be(undefined);

expect(result._meta.modified.toString()).to.be(result._meta.created.toString());

var firstCreated = result._meta.created;
Expand All @@ -320,6 +323,9 @@ describe('9_eventemitter_meta.js', function () {
expect(result._meta.modified).to.not.be(null);
expect(result._meta.modified).to.not.be(undefined);

expect(result._meta.path).to.not.be(null);
expect(result._meta.path).to.not.be(undefined);

publisherclient.get(test_path_created_modified_update, function(e, result){

expect(result._meta.created).to.not.be(null);
Expand All @@ -328,6 +334,9 @@ describe('9_eventemitter_meta.js', function () {
expect(result._meta.modified).to.not.be(null);
expect(result._meta.modified).to.not.be(undefined);

expect(result._meta.path).to.not.be(null);
expect(result._meta.path).to.not.be(undefined);

expect(result._meta.modified > result._meta.created).to.be(true);
callback();

Expand Down Expand Up @@ -356,6 +365,9 @@ describe('9_eventemitter_meta.js', function () {
expect(result._meta.modified).to.not.be(null);
expect(result._meta.modified).to.not.be(undefined);

expect(result._meta.path).to.not.be(null);
expect(result._meta.path).to.not.be(undefined);

var firstCreated = result._meta.created;

expect(result._meta.modified.toString()).to.be(result._meta.created.toString());
Expand All @@ -374,6 +386,9 @@ describe('9_eventemitter_meta.js', function () {
expect(result._meta.modified).to.not.be(null);
expect(result._meta.modified).to.not.be(undefined);

expect(result._meta.path).to.not.be(null);
expect(result._meta.path).to.not.be(undefined);

expect(result._meta.created.toString()).to.be(firstCreated.toString());

publisherclient.get(test_path_created_modified_update_notmerge, function(e, result){
Expand All @@ -384,6 +399,9 @@ describe('9_eventemitter_meta.js', function () {
expect(result._meta.modified).to.not.be(null);
expect(result._meta.modified).to.not.be(undefined);

expect(result._meta.path).to.not.be(null);
expect(result._meta.path).to.not.be(undefined);

expect(result._meta.modified > result._meta.created).to.be(true);
callback();

Expand Down

0 comments on commit a52f12d

Please sign in to comment.