From 172f11a2a00ceb777e720eebf52dc2c06f1b8cd5 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Tue, 3 Apr 2018 17:46:09 +0900
Subject: [PATCH] Implement visibility param

---
 src/server/api/endpoints/posts/create.ts | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/server/api/endpoints/posts/create.ts b/src/server/api/endpoints/posts/create.ts
index ccd617545c..03af7ee763 100644
--- a/src/server/api/endpoints/posts/create.ts
+++ b/src/server/api/endpoints/posts/create.ts
@@ -23,6 +23,10 @@ import distribute from '../../../../post/distribute';
  * @return {Promise<any>}
  */
 module.exports = (params, user: ILocalUser, app) => new Promise(async (res, rej) => {
+	// Get 'visibility' parameter
+	const [visibility = 'public', visibilityErr] = $(params.visibility).optional.string().or(['public', 'unlisted', 'private', 'direct']).$;
+	if (visibilityErr) return rej('invalid visibility');
+
 	// Get 'text' parameter
 	const [text, textErr] = $(params.text).optional.string().pipe(isValidText).$;
 	if (textErr) return rej('invalid text');
@@ -280,6 +284,7 @@ module.exports = (params, user: ILocalUser, app) => new Promise(async (res, rej)
 		userId: user._id,
 		appId: app ? app._id : null,
 		viaMobile: viaMobile,
+		visibility,
 		geo
 	}, reply, repost, atMentions);