|
|
@@ -24,10 +24,10 @@ module.exports = function(crowi) {
|
|
|
pageData.populate([
|
|
|
{path: 'creator', model: 'User', select: USER_PUBLIC_FIELDS},
|
|
|
{path: 'revision', model: 'Revision'},
|
|
|
- {path: 'liker', options: { limit: 11 }},
|
|
|
- {path: 'seenUsers', options: { limit: 11 }},
|
|
|
+ //{path: 'liker', options: { limit: 11 }},
|
|
|
+ //{path: 'seenUsers', options: { limit: 11 }},
|
|
|
], function (err, pageData) {
|
|
|
- Page.populate(pageData, {path: 'revision.author', model: 'User'}, function(err, data) {
|
|
|
+ Page.populate(pageData, {path: 'revision.author', model: 'User', select: USER_PUBLIC_FIELDS}, function(err, data) {
|
|
|
if (err) {
|
|
|
return reject(err);
|
|
|
}
|
|
|
@@ -108,48 +108,60 @@ module.exports = function(crowi) {
|
|
|
};
|
|
|
|
|
|
pageSchema.methods.isLiked = function(userData) {
|
|
|
- if (undefined === this.populated('liker')) {
|
|
|
- if (this.liker.indexOf(userData._id.toString()) != -1) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return true;
|
|
|
- } else {
|
|
|
- return this.liker.some(function(likedUser) {
|
|
|
- return likedUser._id.equals(userData._id);
|
|
|
- });
|
|
|
- }
|
|
|
+ //if (undefined === this.populated('liker')) {
|
|
|
+ // if (this.liker.indexOf(userData._id.toString()) != -1) {
|
|
|
+ // return true;
|
|
|
+ // }
|
|
|
+ // return true;
|
|
|
+ //} else {
|
|
|
+ return this.liker.some(function(likedUser) {
|
|
|
+ return likedUser == userData._id.toString();
|
|
|
+ });
|
|
|
+ //}
|
|
|
};
|
|
|
|
|
|
- pageSchema.methods.like = function(userData, callback) {
|
|
|
+ pageSchema.methods.like = function(userData) {
|
|
|
var self = this,
|
|
|
Page = self;
|
|
|
|
|
|
- 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);
|
|
|
- }
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
+ var added = self.liker.addToSet(userData._id);
|
|
|
+ if (added.length > 0) {
|
|
|
+ self.save(function(err, data) {
|
|
|
+ if (err) {
|
|
|
+ return reject(err);
|
|
|
+ }
|
|
|
+ debug('liker updated!', added);
|
|
|
+ return resolve(data);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ debug('liker not updated');
|
|
|
+ return reject(self);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
};
|
|
|
|
|
|
pageSchema.methods.unlike = function(userData, callback) {
|
|
|
var self = this,
|
|
|
Page = self;
|
|
|
|
|
|
- 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);
|
|
|
- }
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
+ var removed = self.liker.pull(userData._id);
|
|
|
+ if (removed.length > 0) {
|
|
|
+ self.save(function(err, data) {
|
|
|
+ if (err) {
|
|
|
+ return reject(err);
|
|
|
+ }
|
|
|
+ debug('unlike updated!', removed);
|
|
|
+ return resolve(data);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ debug('unlike not updated');
|
|
|
+ return reject(self);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
};
|
|
|
|
|
|
pageSchema.methods.isSeenUser = function(userData) {
|
|
|
@@ -157,7 +169,7 @@ module.exports = function(crowi) {
|
|
|
Page = self;
|
|
|
|
|
|
return this.seenUsers.some(function(seenUser) {
|
|
|
- return seenUser._id.equals(userData._id);
|
|
|
+ return seenUser.equals(userData._id);
|
|
|
});
|
|
|
};
|
|
|
|