From 3aece449e4a2134381d69754716906353c2dd8bf Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 22 Oct 2018 05:16:27 +0900 Subject: Improve API definitions --- src/server/api/endpoints/following/delete.ts | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/server/api/endpoints/following/delete.ts') diff --git a/src/server/api/endpoints/following/delete.ts b/src/server/api/endpoints/following/delete.ts index cdfbf43cd1..0489c1e041 100644 --- a/src/server/api/endpoints/following/delete.ts +++ b/src/server/api/endpoints/following/delete.ts @@ -3,8 +3,11 @@ const ms = require('ms'); import User, { pack, ILocalUser } from '../../../../models/user'; import Following from '../../../../models/following'; import deleteFollowing from '../../../../services/following/delete'; +import getParams from '../../get-params'; export const meta = { + stability: 'stable', + desc: { 'ja-JP': '指定したユーザーのフォローを解除します。', 'en-US': 'Unfollow a user.' @@ -17,24 +20,32 @@ export const meta = { requireCredential: true, - kind: 'following-write' + kind: 'following-write', + + params: { + userId: $.type(ID).note({ + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }) + } }; export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - const follower = user; + const [ps, psErr] = getParams(meta, params); + if (psErr) return rej(psErr); - // Get 'userId' parameter - const [userId, userIdErr] = $.type(ID).get(params.userId); - if (userIdErr) return rej('invalid userId param'); + const follower = user; // Check if the followee is yourself - if (user._id.equals(userId)) { + if (user._id.equals(ps.userId)) { return rej('followee is yourself'); } // Get followee const followee = await User.findOne({ - _id: userId + _id: ps.userId }, { fields: { data: false, -- cgit v1.2.3-freya