getstream-node
Advanced tools
Comparing version 0.1.2 to 0.1.3
{ | ||
"name": "getstream-node", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"description": "Build newsfeeds and activity feeds on node.js using getstream.io", | ||
@@ -16,3 +16,4 @@ "author": "Tommaso Barbugli <tbarbugli@gmail.com> (http://getstream.io/)", | ||
"mongoose": "^3.0.0", | ||
"async": "^0.9.0" | ||
"async": "^0.9.0", | ||
"getstream": "^2.1.7" | ||
}, | ||
@@ -19,0 +20,0 @@ "devDependencies": { |
@@ -36,2 +36,4 @@ var BaseActivity = require('./activity.js'); | ||
Backend.prototype.getClassFromRef = function(ref) { | ||
// TODO: raise error if this.getMongoose returns undefined | ||
// it means user forgot to call setupMongoose | ||
var mongoose = this.getMongoose(); | ||
@@ -61,2 +63,13 @@ return mongoose.model(ref); | ||
function getReferencePaths(paths) { | ||
var names = []; | ||
for (var k in paths) { | ||
if (paths[k].instance === 'ObjectID' && k !== '_id') { | ||
names.push(paths[k].path); | ||
} | ||
} | ||
return names.join(' '); | ||
} | ||
var activitySchema = function(Schema) { | ||
@@ -72,12 +85,22 @@ // add base proto functions from BaseActivity | ||
Schema.post('save', function(doc) { | ||
if (doc.wasNew) { | ||
stream.FeedManager.activityCreated(doc); | ||
} | ||
var paths = getReferencePaths(doc.schema.paths); | ||
doc.populate(paths, function(err, docP) { | ||
if (docP.wasNew) { | ||
stream.FeedManager.activityCreated(docP); | ||
} | ||
}); | ||
}); | ||
Schema.post('remove', function(doc) { | ||
stream.FeedManager.activityDeleted(doc); | ||
var paths = getReferencePaths(doc.schema.paths); | ||
doc.populate(paths, function(err, docP) { | ||
stream.FeedManager.activityDeleted(docP); | ||
}); | ||
}); | ||
// add Mongoose specific proto functions | ||
Schema.methods.referencesPaths = function() { | ||
return this; | ||
} | ||
Schema.methods.getStreamBackend = function() { | ||
@@ -84,0 +107,0 @@ return new Backend(); |
@@ -89,2 +89,4 @@ var stream = require('getstream'); | ||
var backend = instance.getStreamBackend(); | ||
backend.serializeActivities([activity]); | ||
var feedType = instance.activityActorFeed() || this.settings.userFeed; | ||
var userId = backend.getIdFromRef(activity.actor); | ||
@@ -91,0 +93,0 @@ feed = this.getFeed(feedType, userId); |
@@ -46,2 +46,4 @@ var async = require("async"); | ||
StreamMongoose.setupMongoose(mongoose); | ||
var Tweet = mongoose.model('Tweet', tweetSchema); | ||
@@ -48,0 +50,0 @@ var User = mongoose.model('User', userSchema); |
33653
820
3
+ Addedgetstream@^2.1.7
+ Addedasap@2.0.6(transitive)
+ Addedasn1@0.1.11(transitive)
+ Addedassert-plus@0.1.5(transitive)
+ Addedaws-sign2@0.5.0(transitive)
+ Addedboom@0.4.2(transitive)
+ Addedbuffer-equal-constant-time@1.0.1(transitive)
+ Addedcombined-stream@0.0.7(transitive)
+ Addedcryptiles@0.2.2(transitive)
+ Addedcsprng@0.1.2(transitive)
+ Addedctype@0.5.3(transitive)
+ Addeddelayed-stream@0.0.5(transitive)
+ Addedecdsa-sig-formatter@1.0.11(transitive)
+ Addedfaye@1.4.0(transitive)
+ Addedfaye-websocket@0.11.4(transitive)
+ Addedforever-agent@0.5.2(transitive)
+ Addedform-data@0.1.4(transitive)
+ Addedgetstream@2.2.2(transitive)
+ Addedhawk@1.0.0(transitive)
+ Addedhoek@0.9.1(transitive)
+ Addedhttp-parser-js@0.5.9(transitive)
+ Addedhttp-signature@0.10.1(transitive)
+ Addedjson-stringify-safe@5.0.1(transitive)
+ Addedjsonwebtoken@5.7.0(transitive)
+ Addedjwa@1.4.1(transitive)
+ Addedjws@3.2.2(transitive)
+ Addedmime@1.2.11(transitive)
+ Addedms@0.7.3(transitive)
+ Addednode-uuid@1.4.8(transitive)
+ Addedoauth-sign@0.3.0(transitive)
+ Addedqs@0.6.6(transitive)
+ Addedrequest@2.36.0(transitive)
+ Addedsequin@0.1.1(transitive)
+ Addedsntp@0.2.4(transitive)
+ Addedtldts@6.1.77(transitive)
+ Addedtldts-core@6.1.77(transitive)
+ Addedtough-cookie@5.1.1(transitive)
+ Addedtunnel-agent@0.4.30.6.0(transitive)
+ Addedwebsocket-driver@0.7.4(transitive)
+ Addedwebsocket-extensions@0.1.4(transitive)
+ Addedxtend@4.0.2(transitive)