From f7c6932a83f80b6c43bcb79dcd11e8d490ce242a Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 17 Sep 2023 10:55:26 +0900 Subject: enhance: 各ノートが被クリップ数を保持するようにし、無意味にnotes/clipsを叩かないように MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/backend/src/server/api/endpoints/clips/add-note.ts | 9 +++++++-- packages/backend/src/server/api/endpoints/clips/remove-note.ts | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'packages/backend/src/server') diff --git a/packages/backend/src/server/api/endpoints/clips/add-note.ts b/packages/backend/src/server/api/endpoints/clips/add-note.ts index e7fae8662c..00b8bb09a8 100644 --- a/packages/backend/src/server/api/endpoints/clips/add-note.ts +++ b/packages/backend/src/server/api/endpoints/clips/add-note.ts @@ -8,7 +8,7 @@ import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; import { IdService } from '@/core/IdService.js'; import { DI } from '@/di-symbols.js'; -import type { ClipNotesRepository, ClipsRepository } from '@/models/_.js'; +import type { ClipNotesRepository, ClipsRepository, NotesRepository } from '@/models/_.js'; import { GetterService } from '@/server/api/GetterService.js'; import { RoleService } from '@/core/RoleService.js'; import { ApiError } from '../../error.js'; @@ -72,6 +72,9 @@ export default class extends Endpoint { // eslint- @Inject(DI.clipNotesRepository) private clipNotesRepository: ClipNotesRepository, + @Inject(DI.notesRepository) + private notesRepository: NotesRepository, + private idService: IdService, private roleService: RoleService, private getterService: GetterService, @@ -115,9 +118,11 @@ export default class extends Endpoint { // eslint- clipId: clip.id, }); - await this.clipsRepository.update(clip.id, { + this.clipsRepository.update(clip.id, { lastClippedAt: new Date(), }); + + this.notesRepository.increment({ id: note.id }, 'clippedCount', 1); }); } } diff --git a/packages/backend/src/server/api/endpoints/clips/remove-note.ts b/packages/backend/src/server/api/endpoints/clips/remove-note.ts index 53389d0283..65fad5f970 100644 --- a/packages/backend/src/server/api/endpoints/clips/remove-note.ts +++ b/packages/backend/src/server/api/endpoints/clips/remove-note.ts @@ -52,6 +52,9 @@ export default class extends Endpoint { // eslint- @Inject(DI.clipNotesRepository) private clipNotesRepository: ClipNotesRepository, + @Inject(DI.notesRepository) + private notesRepository: NotesRepository, + private getterService: GetterService, ) { super(meta, paramDef, async (ps, me) => { @@ -73,6 +76,8 @@ export default class extends Endpoint { // eslint- noteId: note.id, clipId: clip.id, }); + + this.notesRepository.decrement({ id: note.id }, 'clippedCount', 1); }); } } -- cgit v1.2.3-freya