summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notes/state.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-10-31 15:30:22 +0900
committerGitHub <noreply@github.com>2021-10-31 15:30:22 +0900
commitfc65190ef7b687650018cccfee2219bf00827f70 (patch)
treed2482c79dd095509b8b57dac28db460fb812196a /src/server/api/endpoints/notes/state.ts
parentfix: Fix #7895 (#7937) (diff)
downloadsharkey-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.ts28
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,
};
});