From 4d09ccbcc81e0ad15c93d99287504ee367a84750 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Mon, 15 Sep 2025 17:57:30 -0400 Subject: [PATCH] simplify logic in users/show lookup --- .../src/server/api/endpoints/users/show.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/backend/src/server/api/endpoints/users/show.ts b/packages/backend/src/server/api/endpoints/users/show.ts index e617e98995..3fcfa8490a 100644 --- a/packages/backend/src/server/api/endpoints/users/show.ts +++ b/packages/backend/src/server/api/endpoints/users/show.ts @@ -13,7 +13,6 @@ import { RemoteUserResolveService } from '@/core/RemoteUserResolveService.js'; import { DI } from '@/di-symbols.js'; import PerUserPvChart from '@/core/chart/charts/per-user-pv.js'; import { RoleService } from '@/core/RoleService.js'; -import { renderInlineError } from '@/misc/render-inline-error.js'; import { CacheService } from '@/core/CacheService.js'; import { ApiError } from '../../error.js'; import { ApiLoggerService } from '../../ApiLoggerService.js'; @@ -136,15 +135,14 @@ export default class extends Endpoint { // eslint- return _users.map(u => _userMap.get(u.id)!); } else { // Lookup user - if (typeof ps.host === 'string' && typeof ps.username === 'string') { - user = await this.remoteUserResolveService.resolveUser(ps.username, ps.host).catch(err => { - this.apiLoggerService.logger.warn(`failed to resolve remote user: ${renderInlineError(err)}`); - throw new ApiError(meta.errors.failedToResolveRemoteUser); - }); + if (ps.username) { + user = await this.remoteUserResolveService.resolveUser(ps.username, ps.host ?? null).catch(() => null); } else if (ps.userId != null) { - user = await this.cacheService.findUserById(ps.userId); - } else if (ps.username) { - user = await this.usersRepository.findOneBy({ usernameLower: ps.username.toLowerCase(), host: IsNull() }); + user = await this.cacheService.findUserById(ps.userId).catch(() => null); + } + + if (user == null && ps.host != null) { + throw new ApiError(meta.errors.failedToResolveRemoteUser); } if (user == null || (!isModerator && user.isSuspended)) {