From 666e0463999176bca5ce8050a3b5193f14d02c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Thu, 27 Nov 2025 18:40:54 +0900 Subject: [PATCH] =?UTF-8?q?Revert=20"fix(backend):=20`clips/my-favorites`?= =?UTF-8?q?=20API=E3=82=92=E3=83=9A=E3=83=BC=E3=82=B8=E3=83=8D=E3=83=BC?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AB=E5=AF=BE=E5=BF=9C=E3=81=95?= =?UTF-8?q?=E3=81=9B=E3=82=8B=20(#16835)"=20(#16874)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "fix(backend): `clips/my-favorites` APIをページネーションに対応させる (#16835)" This reverts commit 70fa621e22b90b1f649eb3c1d291cec1ed57b0ac. * fix --- CHANGELOG.md | 1 - .../server/api/endpoints/clips/my-favorites.ts | 10 +--------- packages/backend/test/e2e/clips.ts | 15 +++++++-------- packages/frontend/src/pages/my-clips/index.vue | 2 ++ packages/misskey-js/etc/misskey-js.api.md | 4 ---- packages/misskey-js/src/autogen/endpoint.ts | 3 +-- packages/misskey-js/src/autogen/entities.ts | 1 - packages/misskey-js/src/autogen/types.ts | 14 -------------- 8 files changed, 11 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 616e726940..93a510784a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,6 @@ - Fix: 初回読み込み時にエラーになることがある問題を修正 ### Server -- Enhance: `clips/my-favorites` APIがページネーションに対応しました - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 diff --git a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts index 057b567312..44719592d1 100644 --- a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts +++ b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts @@ -5,7 +5,6 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; -import { QueryService } from '@/core/QueryService.js'; import type { ClipFavoritesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ClipEntityService } from '@/core/entities/ClipEntityService.js'; @@ -31,11 +30,6 @@ export const meta = { export const paramDef = { type: 'object', properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, }, required: [], } as const; @@ -46,16 +40,14 @@ export default class extends Endpoint { // eslint- @Inject(DI.clipFavoritesRepository) private clipFavoritesRepository: ClipFavoritesRepository, - private queryService: QueryService, private clipEntityService: ClipEntityService, ) { super(meta, paramDef, async (ps, me) => { - const query = this.queryService.makePaginationQuery(this.clipFavoritesRepository.createQueryBuilder('favorite'), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) + const query = this.clipFavoritesRepository.createQueryBuilder('favorite') .andWhere('favorite.userId = :meId', { meId: me.id }) .leftJoinAndSelect('favorite.clip', 'clip'); const favorites = await query - .limit(ps.limit) .getMany(); return this.clipEntityService.packMany(favorites.map(x => x.clip!), me); diff --git a/packages/backend/test/e2e/clips.ts b/packages/backend/test/e2e/clips.ts index fec83c2433..fe9a217ee8 100644 --- a/packages/backend/test/e2e/clips.ts +++ b/packages/backend/test/e2e/clips.ts @@ -506,10 +506,10 @@ describe('クリップ', () => { }); }; - const myFavorites = async (parameters: Misskey.entities.ClipsMyFavoritesRequest, request: Partial> = {}): Promise => { + const myFavorites = async (request: Partial> = {}): Promise => { return successfulApiCall({ endpoint: 'clips/my-favorites', - parameters, + parameters: {}, user: alice, ...request, }); @@ -562,9 +562,8 @@ describe('クリップ', () => { await favorite({ clipId: clip.id }); } - const favorited = await myFavorites({ - limit: 30, - }); + // pagenationはない。全部一気にとれる。 + const favorited = await myFavorites(); assert.strictEqual(favorited.length, clips.length); for (const clip of favorited) { assert.strictEqual(clip.favoritedCount, 1); @@ -618,7 +617,7 @@ describe('クリップ', () => { const clip = await show({ clipId: aliceClip.id }); assert.strictEqual(clip.favoritedCount, 0); assert.strictEqual(clip.isFavorited, false); - assert.deepStrictEqual(await myFavorites({}), []); + assert.deepStrictEqual(await myFavorites(), []); }); test.each([ @@ -652,13 +651,13 @@ describe('クリップ', () => { test('を取得できる。', async () => { await favorite({ clipId: aliceClip.id }); - const favorited = await myFavorites({}); + const favorited = await myFavorites(); assert.deepStrictEqual(favorited, [await show({ clipId: aliceClip.id })]); }); test('を取得したとき他人のお気に入りは含まない。', async () => { await favorite({ clipId: aliceClip.id }); - const favorited = await myFavorites({}, { user: bob }); + const favorited = await myFavorites({ user: bob }); assert.deepStrictEqual(favorited, []); }); }); diff --git a/packages/frontend/src/pages/my-clips/index.vue b/packages/frontend/src/pages/my-clips/index.vue index f48dc5be4d..45faae48be 100644 --- a/packages/frontend/src/pages/my-clips/index.vue +++ b/packages/frontend/src/pages/my-clips/index.vue @@ -43,6 +43,8 @@ const paginator = markRaw(new Paginator('clips/list', { })); const favoritesPaginator = markRaw(new Paginator('clips/my-favorites', { + // ページネーションに対応していない + noPaging: true, })); async function create() { diff --git a/packages/misskey-js/etc/misskey-js.api.md b/packages/misskey-js/etc/misskey-js.api.md index 74f69f67c1..fe19c00a80 100644 --- a/packages/misskey-js/etc/misskey-js.api.md +++ b/packages/misskey-js/etc/misskey-js.api.md @@ -1223,9 +1223,6 @@ type ClipsListRequest = operations['clips___list']['requestBody']['content']['ap // @public (undocumented) type ClipsListResponse = operations['clips___list']['responses']['200']['content']['application/json']; -// @public (undocumented) -type ClipsMyFavoritesRequest = operations['clips___my-favorites']['requestBody']['content']['application/json']; - // @public (undocumented) type ClipsMyFavoritesResponse = operations['clips___my-favorites']['responses']['200']['content']['application/json']; @@ -1777,7 +1774,6 @@ declare namespace entities { ClipsFavoriteRequest, ClipsListRequest, ClipsListResponse, - ClipsMyFavoritesRequest, ClipsMyFavoritesResponse, ClipsNotesRequest, ClipsNotesResponse, diff --git a/packages/misskey-js/src/autogen/endpoint.ts b/packages/misskey-js/src/autogen/endpoint.ts index 6bcdb45200..c3ef3de4e6 100644 --- a/packages/misskey-js/src/autogen/endpoint.ts +++ b/packages/misskey-js/src/autogen/endpoint.ts @@ -269,7 +269,6 @@ import type { ClipsFavoriteRequest, ClipsListRequest, ClipsListResponse, - ClipsMyFavoritesRequest, ClipsMyFavoritesResponse, ClipsNotesRequest, ClipsNotesResponse, @@ -839,7 +838,7 @@ export type Endpoints = { 'clips/delete': { req: ClipsDeleteRequest; res: EmptyResponse }; 'clips/favorite': { req: ClipsFavoriteRequest; res: EmptyResponse }; 'clips/list': { req: ClipsListRequest; res: ClipsListResponse }; - 'clips/my-favorites': { req: ClipsMyFavoritesRequest; res: ClipsMyFavoritesResponse }; + 'clips/my-favorites': { req: EmptyRequest; res: ClipsMyFavoritesResponse }; 'clips/notes': { req: ClipsNotesRequest; res: ClipsNotesResponse }; 'clips/remove-note': { req: ClipsRemoveNoteRequest; res: EmptyResponse }; 'clips/show': { req: ClipsShowRequest; res: ClipsShowResponse }; diff --git a/packages/misskey-js/src/autogen/entities.ts b/packages/misskey-js/src/autogen/entities.ts index acb4c1a802..0d57b065dc 100644 --- a/packages/misskey-js/src/autogen/entities.ts +++ b/packages/misskey-js/src/autogen/entities.ts @@ -272,7 +272,6 @@ export type ClipsDeleteRequest = operations['clips___delete']['requestBody']['co export type ClipsFavoriteRequest = operations['clips___favorite']['requestBody']['content']['application/json']; export type ClipsListRequest = operations['clips___list']['requestBody']['content']['application/json']; export type ClipsListResponse = operations['clips___list']['responses']['200']['content']['application/json']; -export type ClipsMyFavoritesRequest = operations['clips___my-favorites']['requestBody']['content']['application/json']; export type ClipsMyFavoritesResponse = operations['clips___my-favorites']['responses']['200']['content']['application/json']; export type ClipsNotesRequest = operations['clips___notes']['requestBody']['content']['application/json']; export type ClipsNotesResponse = operations['clips___notes']['responses']['200']['content']['application/json']; diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts index 9b67b93602..2650869590 100644 --- a/packages/misskey-js/src/autogen/types.ts +++ b/packages/misskey-js/src/autogen/types.ts @@ -18638,20 +18638,6 @@ export interface operations { }; }; 'clips___my-favorites': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - }; - }; - }; responses: { /** @description OK (with results) */ 200: {