diff options
| author | おさむのひと <46447427+samunohito@users.noreply.github.com> | 2024-10-05 14:37:52 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-05 14:37:52 +0900 |
| commit | 0d7d1091c8970d9979e8efb02f0accd6dcd39422 (patch) | |
| tree | c76208e6b85a579f414a2fd7cac1bc1bb51f67ef /packages/backend/src/core/FlashService.ts | |
| parent | #14675 レビューの修正 (#14705) (diff) | |
| download | sharkey-0d7d1091c8970d9979e8efb02f0accd6dcd39422.tar.gz sharkey-0d7d1091c8970d9979e8efb02f0accd6dcd39422.tar.bz2 sharkey-0d7d1091c8970d9979e8efb02f0accd6dcd39422.zip | |
enhance: 人気のPlayを10件以上表示できるように (#14443)
Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Diffstat (limited to 'packages/backend/src/core/FlashService.ts')
| -rw-r--r-- | packages/backend/src/core/FlashService.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/backend/src/core/FlashService.ts b/packages/backend/src/core/FlashService.ts new file mode 100644 index 0000000000..2a98225382 --- /dev/null +++ b/packages/backend/src/core/FlashService.ts @@ -0,0 +1,40 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Inject, Injectable } from '@nestjs/common'; +import { DI } from '@/di-symbols.js'; +import { type FlashsRepository } from '@/models/_.js'; + +/** + * MisskeyPlay関係のService + */ +@Injectable() +export class FlashService { + constructor( + @Inject(DI.flashsRepository) + private flashRepository: FlashsRepository, + ) { + } + + /** + * 人気のあるPlay一覧を取得する. + */ + public async featured(opts?: { offset?: number, limit: number }) { + const builder = this.flashRepository.createQueryBuilder('flash') + .andWhere('flash.likedCount > 0') + .andWhere('flash.visibility = :visibility', { visibility: 'public' }) + .addOrderBy('flash.likedCount', 'DESC') + .addOrderBy('flash.updatedAt', 'DESC') + .addOrderBy('flash.id', 'DESC'); + + if (opts?.offset) { + builder.skip(opts.offset); + } + + builder.take(opts?.limit ?? 10); + + return await builder.getMany(); + } +} |