summaryrefslogtreecommitdiff
path: root/src/api/serializers
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-11-01 19:33:08 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-11-01 19:33:08 +0900
commitd6b03c43eb818a5e13a8ad1ec69697e4600c5c2c (patch)
tree20302f7974e7939f2e498b07bd11c86bea4f7e82 /src/api/serializers
parentv2799 (diff)
downloadsharkey-d6b03c43eb818a5e13a8ad1ec69697e4600c5c2c.tar.gz
sharkey-d6b03c43eb818a5e13a8ad1ec69697e4600c5c2c.tar.bz2
sharkey-d6b03c43eb818a5e13a8ad1ec69697e4600c5c2c.zip
Implement Channel Watching
Diffstat (limited to 'src/api/serializers')
-rw-r--r--src/api/serializers/channel.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/api/serializers/channel.ts b/src/api/serializers/channel.ts
index d4e16d6be3..3cba39aa16 100644
--- a/src/api/serializers/channel.ts
+++ b/src/api/serializers/channel.ts
@@ -5,6 +5,7 @@ import * as mongo from 'mongodb';
import deepcopy = require('deepcopy');
import { IUser } from '../models/user';
import { default as Channel, IChannel } from '../models/channel';
+import Watching from '../models/channel-watching';
/**
* Serialize a channel
@@ -40,5 +41,26 @@ export default (
// Remove needless properties
delete _channel.user_id;
+ // Me
+ const meId: mongo.ObjectID = me
+ ? mongo.ObjectID.prototype.isPrototypeOf(me)
+ ? me as mongo.ObjectID
+ : typeof me === 'string'
+ ? new mongo.ObjectID(me)
+ : (me as IUser)._id
+ : null;
+
+ if (me) {
+ //#region Watchしているかどうか
+ const watch = await Watching.findOne({
+ user_id: meId,
+ channel_id: _channel.id,
+ deleted_at: { $exists: false }
+ });
+
+ _channel.is_watching = watch !== null;
+ //#endregion
+ }
+
resolve(_channel);
});