summaryrefslogtreecommitdiff
path: root/packages/backend/src/server
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-06-13 14:13:33 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-06-13 14:13:33 +0900
commitf5dfb64a528d705970d606d3f84ec9de2ef55d84 (patch)
treea89436b3c3b474a1b1c985876d9e769ea1ac9f9e /packages/backend/src/server
parentfix image of MkError.vue (diff)
downloadsharkey-f5dfb64a528d705970d606d3f84ec9de2ef55d84.tar.gz
sharkey-f5dfb64a528d705970d606d3f84ec9de2ef55d84.tar.bz2
sharkey-f5dfb64a528d705970d606d3f84ec9de2ef55d84.zip
ユーザー統計表示機能を削除
Resolve #10998
Diffstat (limited to 'packages/backend/src/server')
-rw-r--r--packages/backend/src/server/api/EndpointsModule.ts4
-rw-r--r--packages/backend/src/server/api/endpoints.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/users/stats.ts228
3 files changed, 0 insertions, 234 deletions
diff --git a/packages/backend/src/server/api/EndpointsModule.ts b/packages/backend/src/server/api/EndpointsModule.ts
index 1e32e9988d..d1ff3fe925 100644
--- a/packages/backend/src/server/api/EndpointsModule.ts
+++ b/packages/backend/src/server/api/EndpointsModule.ts
@@ -333,7 +333,6 @@ import * as ep___users_reportAbuse from './endpoints/users/report-abuse.js';
import * as ep___users_searchByUsernameAndHost from './endpoints/users/search-by-username-and-host.js';
import * as ep___users_search from './endpoints/users/search.js';
import * as ep___users_show from './endpoints/users/show.js';
-import * as ep___users_stats from './endpoints/users/stats.js';
import * as ep___users_achievements from './endpoints/users/achievements.js';
import * as ep___users_updateMemo from './endpoints/users/update-memo.js';
import * as ep___fetchRss from './endpoints/fetch-rss.js';
@@ -674,7 +673,6 @@ const $users_reportAbuse: Provider = { provide: 'ep:users/report-abuse', useClas
const $users_searchByUsernameAndHost: Provider = { provide: 'ep:users/search-by-username-and-host', useClass: ep___users_searchByUsernameAndHost.default };
const $users_search: Provider = { provide: 'ep:users/search', useClass: ep___users_search.default };
const $users_show: Provider = { provide: 'ep:users/show', useClass: ep___users_show.default };
-const $users_stats: Provider = { provide: 'ep:users/stats', useClass: ep___users_stats.default };
const $users_achievements: Provider = { provide: 'ep:users/achievements', useClass: ep___users_achievements.default };
const $users_updateMemo: Provider = { provide: 'ep:users/update-memo', useClass: ep___users_updateMemo.default };
const $fetchRss: Provider = { provide: 'ep:fetch-rss', useClass: ep___fetchRss.default };
@@ -1019,7 +1017,6 @@ const $retention: Provider = { provide: 'ep:retention', useClass: ep___retention
$users_searchByUsernameAndHost,
$users_search,
$users_show,
- $users_stats,
$users_achievements,
$users_updateMemo,
$fetchRss,
@@ -1356,7 +1353,6 @@ const $retention: Provider = { provide: 'ep:retention', useClass: ep___retention
$users_searchByUsernameAndHost,
$users_search,
$users_show,
- $users_stats,
$users_achievements,
$users_updateMemo,
$fetchRss,
diff --git a/packages/backend/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts
index 7e678a6404..94206ef870 100644
--- a/packages/backend/src/server/api/endpoints.ts
+++ b/packages/backend/src/server/api/endpoints.ts
@@ -333,7 +333,6 @@ import * as ep___users_reportAbuse from './endpoints/users/report-abuse.js';
import * as ep___users_searchByUsernameAndHost from './endpoints/users/search-by-username-and-host.js';
import * as ep___users_search from './endpoints/users/search.js';
import * as ep___users_show from './endpoints/users/show.js';
-import * as ep___users_stats from './endpoints/users/stats.js';
import * as ep___users_achievements from './endpoints/users/achievements.js';
import * as ep___users_updateMemo from './endpoints/users/update-memo.js';
import * as ep___fetchRss from './endpoints/fetch-rss.js';
@@ -672,7 +671,6 @@ const eps = [
['users/search-by-username-and-host', ep___users_searchByUsernameAndHost],
['users/search', ep___users_search],
['users/show', ep___users_show],
- ['users/stats', ep___users_stats],
['users/achievements', ep___users_achievements],
['users/update-memo', ep___users_updateMemo],
['fetch-rss', ep___fetchRss],
diff --git a/packages/backend/src/server/api/endpoints/users/stats.ts b/packages/backend/src/server/api/endpoints/users/stats.ts
deleted file mode 100644
index 7479793afe..0000000000
--- a/packages/backend/src/server/api/endpoints/users/stats.ts
+++ /dev/null
@@ -1,228 +0,0 @@
-import { Inject, Injectable } from '@nestjs/common';
-import { awaitAll } from '@/misc/prelude/await-all.js';
-import { Endpoint } from '@/server/api/endpoint-base.js';
-import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js';
-import { DI } from '@/di-symbols.js';
-import type { UsersRepository, NotesRepository, FollowingsRepository, DriveFilesRepository, NoteReactionsRepository, PageLikesRepository, NoteFavoritesRepository, PollVotesRepository } from '@/models/index.js';
-import { ApiError } from '../../error.js';
-
-export const meta = {
- tags: ['users'],
-
- requireCredential: false,
-
- description: 'Show statistics about a user.',
-
- errors: {
- noSuchUser: {
- message: 'No such user.',
- code: 'NO_SUCH_USER',
- id: '9e638e45-3b25-4ef7-8f95-07e8498f1819',
- },
- },
-
- res: {
- type: 'object',
- optional: false, nullable: false,
- properties: {
- notesCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- repliesCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- renotesCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- repliedCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- renotedCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- pollVotesCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- pollVotedCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- localFollowingCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- remoteFollowingCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- localFollowersCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- remoteFollowersCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- followingCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- followersCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- sentReactionsCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- receivedReactionsCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- noteFavoritesCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- pageLikesCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- pageLikedCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- driveFilesCount: {
- type: 'integer',
- optional: false, nullable: false,
- },
- driveUsage: {
- type: 'integer',
- optional: false, nullable: false,
- description: 'Drive usage in bytes',
- },
- },
- },
-} as const;
-
-export const paramDef = {
- type: 'object',
- properties: {
- userId: { type: 'string', format: 'misskey:id' },
- },
- required: ['userId'],
-} as const;
-
-// eslint-disable-next-line import/no-default-export
-@Injectable()
-export default class extends Endpoint<typeof meta, typeof paramDef> {
- constructor(
- @Inject(DI.usersRepository)
- private usersRepository: UsersRepository,
-
- @Inject(DI.notesRepository)
- private notesRepository: NotesRepository,
-
- @Inject(DI.followingsRepository)
- private followingsRepository: FollowingsRepository,
-
- @Inject(DI.driveFilesRepository)
- private driveFilesRepository: DriveFilesRepository,
-
- @Inject(DI.noteReactionsRepository)
- private noteReactionsRepository: NoteReactionsRepository,
-
- @Inject(DI.pageLikesRepository)
- private pageLikesRepository: PageLikesRepository,
-
- @Inject(DI.noteFavoritesRepository)
- private noteFavoritesRepository: NoteFavoritesRepository,
-
- @Inject(DI.pollVotesRepository)
- private pollVotesRepository: PollVotesRepository,
-
- private driveFileEntityService: DriveFileEntityService,
- ) {
- super(meta, paramDef, async (ps, me) => {
- const user = await this.usersRepository.findOneBy({ id: ps.userId });
- if (user == null) {
- throw new ApiError(meta.errors.noSuchUser);
- }
-
- const result = await awaitAll({
- notesCount: this.notesRepository.createQueryBuilder('note')
- .where('note.userId = :userId', { userId: user.id })
- .getCount(),
- repliesCount: this.notesRepository.createQueryBuilder('note')
- .where('note.userId = :userId', { userId: user.id })
- .andWhere('note.replyId IS NOT NULL')
- .getCount(),
- renotesCount: this.notesRepository.createQueryBuilder('note')
- .where('note.userId = :userId', { userId: user.id })
- .andWhere('note.renoteId IS NOT NULL')
- .getCount(),
- repliedCount: this.notesRepository.createQueryBuilder('note')
- .where('note.replyUserId = :userId', { userId: user.id })
- .getCount(),
- renotedCount: this.notesRepository.createQueryBuilder('note')
- .where('note.renoteUserId = :userId', { userId: user.id })
- .getCount(),
- pollVotesCount: this.pollVotesRepository.createQueryBuilder('vote')
- .where('vote.userId = :userId', { userId: user.id })
- .getCount(),
- pollVotedCount: this.pollVotesRepository.createQueryBuilder('vote')
- .innerJoin('vote.note', 'note')
- .where('note.userId = :userId', { userId: user.id })
- .getCount(),
- localFollowingCount: this.followingsRepository.createQueryBuilder('following')
- .where('following.followerId = :userId', { userId: user.id })
- .andWhere('following.followeeHost IS NULL')
- .getCount(),
- remoteFollowingCount: this.followingsRepository.createQueryBuilder('following')
- .where('following.followerId = :userId', { userId: user.id })
- .andWhere('following.followeeHost IS NOT NULL')
- .getCount(),
- localFollowersCount: this.followingsRepository.createQueryBuilder('following')
- .where('following.followeeId = :userId', { userId: user.id })
- .andWhere('following.followerHost IS NULL')
- .getCount(),
- remoteFollowersCount: this.followingsRepository.createQueryBuilder('following')
- .where('following.followeeId = :userId', { userId: user.id })
- .andWhere('following.followerHost IS NOT NULL')
- .getCount(),
- sentReactionsCount: this.noteReactionsRepository.createQueryBuilder('reaction')
- .where('reaction.userId = :userId', { userId: user.id })
- .getCount(),
- receivedReactionsCount: this.noteReactionsRepository.createQueryBuilder('reaction')
- .innerJoin('reaction.note', 'note')
- .where('note.userId = :userId', { userId: user.id })
- .getCount(),
- noteFavoritesCount: this.noteFavoritesRepository.createQueryBuilder('favorite')
- .where('favorite.userId = :userId', { userId: user.id })
- .getCount(),
- pageLikesCount: this.pageLikesRepository.createQueryBuilder('like')
- .where('like.userId = :userId', { userId: user.id })
- .getCount(),
- pageLikedCount: this.pageLikesRepository.createQueryBuilder('like')
- .innerJoin('like.page', 'page')
- .where('page.userId = :userId', { userId: user.id })
- .getCount(),
- driveFilesCount: this.driveFilesRepository.createQueryBuilder('file')
- .where('file.userId = :userId', { userId: user.id })
- .getCount(),
- driveUsage: this.driveFileEntityService.calcDriveUsageOf(user),
- });
-
- return {
- ...result,
- followingCount: result.localFollowingCount + result.remoteFollowingCount,
- followersCount: result.localFollowersCount + result.remoteFollowersCount,
- };
- });
- }
-}