summaryrefslogtreecommitdiff
path: root/src/api/endpoints/mute
diff options
context:
space:
mode:
authorAkihiko Odaki <nekomanma@pixiv.co.jp>2018-03-29 01:20:40 +0900
committerAkihiko Odaki <nekomanma@pixiv.co.jp>2018-03-29 01:54:41 +0900
commit90f8fe7e538bb7e52d2558152a0390e693f39b11 (patch)
tree0f830887053c8f352b1cd0c13ca715fd14c1f030 /src/api/endpoints/mute
parentImplement remote account resolution (diff)
downloadsharkey-90f8fe7e538bb7e52d2558152a0390e693f39b11.tar.gz
sharkey-90f8fe7e538bb7e52d2558152a0390e693f39b11.tar.bz2
sharkey-90f8fe7e538bb7e52d2558152a0390e693f39b11.zip
Introduce processor
Diffstat (limited to 'src/api/endpoints/mute')
-rw-r--r--src/api/endpoints/mute/create.ts61
-rw-r--r--src/api/endpoints/mute/delete.ts63
-rw-r--r--src/api/endpoints/mute/list.ts73
3 files changed, 0 insertions, 197 deletions
diff --git a/src/api/endpoints/mute/create.ts b/src/api/endpoints/mute/create.ts
deleted file mode 100644
index f99b40d32e..0000000000
--- a/src/api/endpoints/mute/create.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Module dependencies
- */
-import $ from 'cafy';
-import User from '../../models/user';
-import Mute from '../../models/mute';
-
-/**
- * Mute a user
- *
- * @param {any} params
- * @param {any} user
- * @return {Promise<any>}
- */
-module.exports = (params, user) => new Promise(async (res, rej) => {
- const muter = user;
-
- // Get 'user_id' parameter
- const [userId, userIdErr] = $(params.user_id).id().$;
- if (userIdErr) return rej('invalid user_id param');
-
- // 自分自身
- if (user._id.equals(userId)) {
- return rej('mutee is yourself');
- }
-
- // Get mutee
- const mutee = await User.findOne({
- _id: userId
- }, {
- fields: {
- data: false,
- 'account.profile': false
- }
- });
-
- if (mutee === null) {
- return rej('user not found');
- }
-
- // Check if already muting
- const exist = await Mute.findOne({
- muter_id: muter._id,
- mutee_id: mutee._id,
- deleted_at: { $exists: false }
- });
-
- if (exist !== null) {
- return rej('already muting');
- }
-
- // Create mute
- await Mute.insert({
- created_at: new Date(),
- muter_id: muter._id,
- mutee_id: mutee._id,
- });
-
- // Send response
- res();
-});
diff --git a/src/api/endpoints/mute/delete.ts b/src/api/endpoints/mute/delete.ts
deleted file mode 100644
index 36e2fd101a..0000000000
--- a/src/api/endpoints/mute/delete.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * Module dependencies
- */
-import $ from 'cafy';
-import User from '../../models/user';
-import Mute from '../../models/mute';
-
-/**
- * Unmute a user
- *
- * @param {any} params
- * @param {any} user
- * @return {Promise<any>}
- */
-module.exports = (params, user) => new Promise(async (res, rej) => {
- const muter = user;
-
- // Get 'user_id' parameter
- const [userId, userIdErr] = $(params.user_id).id().$;
- if (userIdErr) return rej('invalid user_id param');
-
- // Check if the mutee is yourself
- if (user._id.equals(userId)) {
- return rej('mutee is yourself');
- }
-
- // Get mutee
- const mutee = await User.findOne({
- _id: userId
- }, {
- fields: {
- data: false,
- 'account.profile': false
- }
- });
-
- if (mutee === null) {
- return rej('user not found');
- }
-
- // Check not muting
- const exist = await Mute.findOne({
- muter_id: muter._id,
- mutee_id: mutee._id,
- deleted_at: { $exists: false }
- });
-
- if (exist === null) {
- return rej('already not muting');
- }
-
- // Delete mute
- await Mute.update({
- _id: exist._id
- }, {
- $set: {
- deleted_at: new Date()
- }
- });
-
- // Send response
- res();
-});
diff --git a/src/api/endpoints/mute/list.ts b/src/api/endpoints/mute/list.ts
deleted file mode 100644
index 19e3b157e6..0000000000
--- a/src/api/endpoints/mute/list.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Module dependencies
- */
-import $ from 'cafy';
-import Mute from '../../models/mute';
-import { pack } from '../../models/user';
-import getFriends from '../../common/get-friends';
-
-/**
- * Get muted users of a user
- *
- * @param {any} params
- * @param {any} me
- * @return {Promise<any>}
- */
-module.exports = (params, me) => new Promise(async (res, rej) => {
- // Get 'iknow' parameter
- const [iknow = false, iknowErr] = $(params.iknow).optional.boolean().$;
- if (iknowErr) return rej('invalid iknow param');
-
- // Get 'limit' parameter
- const [limit = 30, limitErr] = $(params.limit).optional.number().range(1, 100).$;
- if (limitErr) return rej('invalid limit param');
-
- // Get 'cursor' parameter
- const [cursor = null, cursorErr] = $(params.cursor).optional.id().$;
- if (cursorErr) return rej('invalid cursor param');
-
- // Construct query
- const query = {
- muter_id: me._id,
- deleted_at: { $exists: false }
- } as any;
-
- if (iknow) {
- // Get my friends
- const myFriends = await getFriends(me._id);
-
- query.mutee_id = {
- $in: myFriends
- };
- }
-
- // カーソルが指定されている場合
- if (cursor) {
- query._id = {
- $lt: cursor
- };
- }
-
- // Get mutes
- const mutes = await Mute
- .find(query, {
- limit: limit + 1,
- sort: { _id: -1 }
- });
-
- // 「次のページ」があるかどうか
- const inStock = mutes.length === limit + 1;
- if (inStock) {
- mutes.pop();
- }
-
- // Serialize
- const users = await Promise.all(mutes.map(async m =>
- await pack(m.mutee_id, me, { detail: true })));
-
- // Response
- res({
- users: users,
- next: inStock ? mutes[mutes.length - 1]._id : null,
- });
-});