summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-07-05 22:35:35 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-07-05 22:35:35 +0900
commitd53d45f797946ced21f6eaeee0fa4c713b19f782 (patch)
treee0f97c3afcfb657cb5cbd502e690134630c0191e /src/server/api/endpoints
parentMerge pull request #1846 from syuilo/l10n_master (diff)
downloadsharkey-d53d45f797946ced21f6eaeee0fa4c713b19f782.tar.gz
sharkey-d53d45f797946ced21f6eaeee0fa4c713b19f782.tar.bz2
sharkey-d53d45f797946ced21f6eaeee0fa4c713b19f782.zip
wip
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/notes/create.ts39
1 files changed, 30 insertions, 9 deletions
diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts
index 64f3b5ce26..2bd0b430d8 100644
--- a/src/server/api/endpoints/notes/create.ts
+++ b/src/server/api/endpoints/notes/create.ts
@@ -4,22 +4,43 @@ import User, { ILocalUser, IUser } from '../../../../models/user';
import DriveFile from '../../../../models/drive-file';
import create from '../../../../services/note/create';
import { IApp } from '../../../../models/app';
+import getParams from '../../get-params';
+
+export const meta = {
+ params: {
+ visibility: {
+ def: $.str.optional().or(['public', 'home', 'followers', 'specified', 'private']),
+ default: 'public',
+ desc: {
+ ja: '投稿の公開範囲'
+ }
+ },
+ visibleUserIds: {
+ def: $.arr($.type(ID)).optional().unique().min(1),
+ desc: {
+ ja: '(投稿の公開範囲が specified の場合)投稿を閲覧できるユーザー'
+ }
+ },
+ text: {
+ def: $.str.optional().nullable().pipe(isValidText),
+ default: null,
+ desc: {
+ ja: '投稿内容'
+ }
+ },
+ }
+};
/**
* Create a note
*/
module.exports = (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => {
- // Get 'visibility' parameter
- const [visibility = 'public', visibilityErr] = $.str.optional().or(['public', 'home', 'followers', 'specified', 'private']).get(params.visibility);
- if (visibilityErr) return rej('invalid visibility');
-
- // Get 'visibleUserIds' parameter
- const [visibleUserIds, visibleUserIdsErr] = $.arr($.type(ID)).optional().unique().min(1).get(params.visibleUserIds);
- if (visibleUserIdsErr) return rej('invalid visibleUserIds');
+ const [ps, psErr] = getParams(meta, params);
+ if (psErr) return rej(psErr);
let visibleUsers: IUser[] = [];
- if (visibleUserIds !== undefined) {
- visibleUsers = await Promise.all(visibleUserIds.map(id => User.findOne({
+ if (ps.visibleUserIds !== undefined) {
+ visibleUsers = await Promise.all(ps.visibleUserIds.map(id => User.findOne({
_id: id
})));
}