|
@@ -91,13 +91,13 @@ module.exports = function(crowi) {
|
|
|
|
|
|
|
|
pageSchema.methods.isLiked = function(userData) {
|
|
pageSchema.methods.isLiked = function(userData) {
|
|
|
if (undefined === this.populated('liker')) {
|
|
if (undefined === this.populated('liker')) {
|
|
|
- if (this.liker.indexOf(userData._id) != -1) {
|
|
|
|
|
|
|
+ if (this.liker.indexOf(userData._id.toString()) != -1) {
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
return true;
|
|
return true;
|
|
|
} else {
|
|
} else {
|
|
|
return this.liker.some(function(likedUser) {
|
|
return this.liker.some(function(likedUser) {
|
|
|
- return likedUser._id.toString() == userData._id.toString();
|
|
|
|
|
|
|
+ return likedUser._id.equals(userData._id);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
@@ -106,26 +106,15 @@ module.exports = function(crowi) {
|
|
|
var self = this,
|
|
var self = this,
|
|
|
Page = self;
|
|
Page = self;
|
|
|
|
|
|
|
|
- if (undefined === this.populated('liker')) {
|
|
|
|
|
- var added = this.liker.addToSet(userData._id);
|
|
|
|
|
- if (added.length > 0) {
|
|
|
|
|
- this.save(function(err, data) {
|
|
|
|
|
- debug('liker updated!', added);
|
|
|
|
|
- return callback(err, data);
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
- debug('liker not updated');
|
|
|
|
|
- return callback(null, this);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ var added = this.liker.addToSet(userData._id);
|
|
|
|
|
+ if (added.length > 0) {
|
|
|
|
|
+ this.save(function(err, data) {
|
|
|
|
|
+ debug('liker updated!', added);
|
|
|
|
|
+ return callback(err, data);
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
- Page.update(
|
|
|
|
|
- {_id: self._id},
|
|
|
|
|
- { $addToSet: { liker: userData._id }},
|
|
|
|
|
- function(err, numAffected, raw) {
|
|
|
|
|
- debug('Updated liker,', err, numAffected, raw);
|
|
|
|
|
- callback(null, self);
|
|
|
|
|
- }
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ debug('liker not updated');
|
|
|
|
|
+ return callback(null, this);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -133,54 +122,45 @@ module.exports = function(crowi) {
|
|
|
var self = this,
|
|
var self = this,
|
|
|
Page = self;
|
|
Page = self;
|
|
|
|
|
|
|
|
- if (undefined === this.populated('liker')) {
|
|
|
|
|
- var removed = this.liker.pull(userData._id);
|
|
|
|
|
- if (removed.length > 0) {
|
|
|
|
|
- this.save(function(err, data) {
|
|
|
|
|
- debug('unlike updated!', removed);
|
|
|
|
|
- return callback(err, data);
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
- debug('unlike not updated');
|
|
|
|
|
- callback(null, this);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ var removed = this.liker.pull(userData._id);
|
|
|
|
|
+ if (removed.length > 0) {
|
|
|
|
|
+ this.save(function(err, data) {
|
|
|
|
|
+ debug('unlike updated!', removed);
|
|
|
|
|
+ return callback(err, data);
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
- Page.update(
|
|
|
|
|
- {_id: self._id},
|
|
|
|
|
- { $pull: { liker: userData._id }},
|
|
|
|
|
- function(err, numAffected, raw) {
|
|
|
|
|
- debug('Updated liker (unlike)', err, numAffected, raw);
|
|
|
|
|
- callback(null, self);
|
|
|
|
|
- }
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ debug('unlike not updated');
|
|
|
|
|
+ callback(null, this);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ pageSchema.methods.isSeenUser = function(userData) {
|
|
|
|
|
+ var self = this,
|
|
|
|
|
+ Page = self;
|
|
|
|
|
+
|
|
|
|
|
+ return this.seenUsers.some(function(seenUser) {
|
|
|
|
|
+ return seenUser._id.equals(userData._id);
|
|
|
|
|
+ });
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
pageSchema.methods.seen = function(userData, callback) {
|
|
pageSchema.methods.seen = function(userData, callback) {
|
|
|
var self = this,
|
|
var self = this,
|
|
|
Page = self;
|
|
Page = self;
|
|
|
|
|
|
|
|
- if (undefined === this.populated('seenUsers')) {
|
|
|
|
|
- var added = this.seenUsers.addToSet(userData._id);
|
|
|
|
|
- if (added.length > 0) {
|
|
|
|
|
- this.save(function(err, data) {
|
|
|
|
|
- debug('seenUsers updated!', added);
|
|
|
|
|
- return callback(err, data);
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
- debug('seenUsers not updated');
|
|
|
|
|
- return callback(null, this);
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- Page.update(
|
|
|
|
|
- {_id: self._id},
|
|
|
|
|
- { $addToSet: { seenUsers: userData._id }},
|
|
|
|
|
- function(err, numAffected, raw) {
|
|
|
|
|
- debug('Updated seenUsers,', err, numAffected, raw);
|
|
|
|
|
- callback(null, self);
|
|
|
|
|
- }
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ if (!userData || !userData._id) {
|
|
|
|
|
+ callback(new Error('User data is not valid'), null);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (this.isSeenUser(userData)) {
|
|
|
|
|
+ debug('seenUsers not updated');
|
|
|
|
|
+ return callback(null, self);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ var added = self.seenUsers.addToSet(userData);
|
|
|
|
|
+ this.save(function(err, data) {
|
|
|
|
|
+ debug('seenUsers updated!', added);
|
|
|
|
|
+ return callback(err, self);
|
|
|
|
|
+ });
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
pageSchema.statics.getGrantLabels = function() {
|
|
pageSchema.statics.getGrantLabels = function() {
|