diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-10-31 15:30:22 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-31 15:30:22 +0900 |
| commit | fc65190ef7b687650018cccfee2219bf00827f70 (patch) | |
| tree | d2482c79dd095509b8b57dac28db460fb812196a /src/server/api/endpoints/notes/state.ts | |
| parent | fix: Fix #7895 (#7937) (diff) | |
| download | sharkey-fc65190ef7b687650018cccfee2219bf00827f70.tar.gz sharkey-fc65190ef7b687650018cccfee2219bf00827f70.tar.bz2 sharkey-fc65190ef7b687650018cccfee2219bf00827f70.zip | |
feat: thread mute (#7930)
* feat: thread mute
* chore: fix comment
* fix test
* fix
* refactor
Diffstat (limited to 'src/server/api/endpoints/notes/state.ts')
| -rw-r--r-- | src/server/api/endpoints/notes/state.ts | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/server/api/endpoints/notes/state.ts b/src/server/api/endpoints/notes/state.ts index 489902435d..b3913a5e79 100644 --- a/src/server/api/endpoints/notes/state.ts +++ b/src/server/api/endpoints/notes/state.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { NoteFavorites, NoteWatchings } from '@/models/index'; +import { NoteFavorites, Notes, NoteThreadMutings, NoteWatchings } from '@/models/index'; export const meta = { tags: ['notes'], @@ -25,31 +25,45 @@ export const meta = { isWatching: { type: 'boolean' as const, optional: false as const, nullable: false as const - } + }, + isMutedThread: { + type: 'boolean' as const, + optional: false as const, nullable: false as const + }, } } }; export default define(meta, async (ps, user) => { - const [favorite, watching] = await Promise.all([ + const note = await Notes.findOneOrFail(ps.noteId); + + const [favorite, watching, threadMuting] = await Promise.all([ NoteFavorites.count({ where: { userId: user.id, - noteId: ps.noteId + noteId: note.id, }, take: 1 }), NoteWatchings.count({ where: { userId: user.id, - noteId: ps.noteId + noteId: note.id, }, take: 1 - }) + }), + NoteThreadMutings.count({ + where: { + userId: user.id, + threadId: note.threadId || note.id, + }, + take: 1 + }), ]); return { isFavorited: favorite !== 0, - isWatching: watching !== 0 + isWatching: watching !== 0, + isMutedThread: threadMuting !== 0, }; }); |