From 614a1d74ddf388dcb82f69722c96696ad530602d Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 28 Mar 2020 18:07:41 +0900 Subject: Resolve #6192 --- src/server/api/endpoints/app/show.ts | 4 ++- src/server/api/endpoints/drive/files/create.ts | 2 +- src/server/api/endpoints/i.ts | 4 ++- src/server/api/endpoints/i/update.ts | 4 ++- src/server/api/endpoints/notes/polls/vote.ts | 6 ++-- src/server/api/endpoints/notifications/create.ts | 37 ++++++++++++++++++++++++ src/server/api/endpoints/users/groups/invite.ts | 3 +- 7 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 src/server/api/endpoints/notifications/create.ts (limited to 'src/server/api/endpoints') diff --git a/src/server/api/endpoints/app/show.ts b/src/server/api/endpoints/app/show.ts index c1bbb2c53e..e3f3a1eaa4 100644 --- a/src/server/api/endpoints/app/show.ts +++ b/src/server/api/endpoints/app/show.ts @@ -28,7 +28,9 @@ export const meta = { } }; -export default define(meta, async (ps, user, isSecure) => { +export default define(meta, async (ps, user, token) => { + const isSecure = token == null; + // Lookup app const ap = await Apps.findOne(ps.appId); diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts index 5043fbb8e7..c0bb6bcc6e 100644 --- a/src/server/api/endpoints/drive/files/create.ts +++ b/src/server/api/endpoints/drive/files/create.ts @@ -78,7 +78,7 @@ export const meta = { } }; -export default define(meta, async (ps, user, isSecure, file, cleanup) => { +export default define(meta, async (ps, user, _, file, cleanup) => { // Get 'name' parameter let name = ps.name || file.originalname; if (name !== undefined && name !== null) { diff --git a/src/server/api/endpoints/i.ts b/src/server/api/endpoints/i.ts index 3909d54663..02d59682b8 100644 --- a/src/server/api/endpoints/i.ts +++ b/src/server/api/endpoints/i.ts @@ -19,7 +19,9 @@ export const meta = { }, }; -export default define(meta, async (ps, user, isSecure) => { +export default define(meta, async (ps, user, token) => { + const isSecure = token == null; + return await Users.pack(user, user, { detail: true, includeHasUnreadNotes: true, diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts index 0a3ba824ae..c90f050251 100644 --- a/src/server/api/endpoints/i/update.ts +++ b/src/server/api/endpoints/i/update.ts @@ -178,7 +178,9 @@ export const meta = { } }; -export default define(meta, async (ps, user, isSecure) => { +export default define(meta, async (ps, user, token) => { + const isSecure = token == null; + const updates = {} as Partial; const profileUpdates = {} as Partial; diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/src/server/api/endpoints/notes/polls/vote.ts index 3c5492f8ee..45210b5a6e 100644 --- a/src/server/api/endpoints/notes/polls/vote.ts +++ b/src/server/api/endpoints/notes/polls/vote.ts @@ -132,7 +132,8 @@ export default define(meta, async (ps, user) => { }); // Notify - createNotification(note.userId, user.id, 'pollVote', { + createNotification(note.userId, 'pollVote', { + notifierId: user.id, noteId: note.id, choice: ps.choice }); @@ -143,7 +144,8 @@ export default define(meta, async (ps, user) => { userId: Not(user.id), }).then(watchers => { for (const watcher of watchers) { - createNotification(watcher.userId, user.id, 'pollVote', { + createNotification(watcher.userId, 'pollVote', { + notifierId: user.id, noteId: note.id, choice: ps.choice }); diff --git a/src/server/api/endpoints/notifications/create.ts b/src/server/api/endpoints/notifications/create.ts new file mode 100644 index 0000000000..fed422b645 --- /dev/null +++ b/src/server/api/endpoints/notifications/create.ts @@ -0,0 +1,37 @@ +import $ from 'cafy'; +import define from '../../define'; +import { createNotification } from '../../../../services/create-notification'; + +export const meta = { + tags: ['notifications'], + + requireCredential: true as const, + + kind: 'write:notifications', + + params: { + body: { + validator: $.str + }, + + header: { + validator: $.optional.nullable.str + }, + + icon: { + validator: $.optional.nullable.str + }, + }, + + errors: { + } +}; + +export default define(meta, async (ps, user, token) => { + createNotification(user.id, 'app', { + appAccessTokenId: token.id, + customBody: ps.body, + customHeader: ps.header, + customIcon: ps.icon, + }); +}); diff --git a/src/server/api/endpoints/users/groups/invite.ts b/src/server/api/endpoints/users/groups/invite.ts index da0fd1c2ca..a0f5091b07 100644 --- a/src/server/api/endpoints/users/groups/invite.ts +++ b/src/server/api/endpoints/users/groups/invite.ts @@ -104,7 +104,8 @@ export default define(meta, async (ps, me) => { } as UserGroupInvitation); // 通知を作成 - createNotification(user.id, me.id, 'groupInvited', { + createNotification(user.id, 'groupInvited', { + notifierId: me.id, userGroupInvitationId: invitation.id }); }); -- cgit v1.2.3-freya