diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-07-04 10:20:00 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-07-04 10:20:00 +0900 |
| commit | dd87d26bdc14d9639b626e3967ca0e3107cdceba (patch) | |
| tree | 14f10c56f40d60cb7d4c1aa736cf594ae05a8f66 /packages/backend/src/server/api/endpoints/flash/search.ts | |
| parent | fix(frontend): プラグインのアンインストール時にローカル... (diff) | |
| download | misskey-dd87d26bdc14d9639b626e3967ca0e3107cdceba.tar.gz misskey-dd87d26bdc14d9639b626e3967ca0e3107cdceba.tar.bz2 misskey-dd87d26bdc14d9639b626e3967ca0e3107cdceba.zip | |
feat: Playを検索できるように
#13115
Diffstat (limited to 'packages/backend/src/server/api/endpoints/flash/search.ts')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/flash/search.ts | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/flash/search.ts b/packages/backend/src/server/api/endpoints/flash/search.ts new file mode 100644 index 0000000000..36948bb7b4 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/flash/search.ts @@ -0,0 +1,59 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Inject, Injectable } from '@nestjs/common'; +import { Endpoint } from '@/server/api/endpoint-base.js'; +import { FlashEntityService } from '@/core/entities/FlashEntityService.js'; +import { DI } from '@/di-symbols.js'; +import { FlashService } from '@/core/FlashService.js'; + +export const meta = { + tags: ['flash'], + + requireCredential: false, + + res: { + type: 'array', + optional: false, nullable: false, + items: { + type: 'object', + optional: false, nullable: false, + ref: 'Flash', + }, + }, +} as const; + +export const paramDef = { + type: 'object', + properties: { + query: { type: 'string', minLength: 1, maxLength: 100 }, + sinceId: { type: 'string', format: 'misskey:id' }, + untilId: { type: 'string', format: 'misskey:id' }, + sinceDate: { type: 'integer' }, + untilDate: { type: 'integer' }, + limit: { type: 'integer', minimum: 1, maximum: 100, default: 5 }, + }, + required: ['query'], +} as const; + +@Injectable() +export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-disable-line import/no-default-export + constructor( + private flashService: FlashService, + private flashEntityService: FlashEntityService, + ) { + super(meta, paramDef, async (ps, me) => { + const result = await this.flashService.search(ps.query, { + sinceId: ps.sinceId, + untilId: ps.untilId, + sinceDate: ps.sinceDate, + untilDate: ps.untilDate, + limit: ps.limit, + }); + + return await this.flashEntityService.packMany(result, me); + }); + } +} |