summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/users/show.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/users/show.ts')
-rw-r--r--src/server/api/endpoints/users/show.ts29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts
index 4e59945eba..a605eaf30a 100644
--- a/src/server/api/endpoints/users/show.ts
+++ b/src/server/api/endpoints/users/show.ts
@@ -1,12 +1,11 @@
import $ from 'cafy';
-import ID, { transform, transformMany } from '../../../../misc/cafy-id';
-import User, { pack, isRemoteUser } from '../../../../models/user';
import resolveRemoteUser from '../../../../remote/resolve-user';
import define from '../../define';
import { apiLogger } from '../../logger';
import { ApiError } from '../../error';
-
-const cursorOption = { fields: { data: false } };
+import { ID } from '../../../../misc/cafy-id';
+import { Users } from '../../../../models';
+import { In } from 'typeorm';
export const meta = {
desc: {
@@ -20,7 +19,6 @@ export const meta = {
params: {
userId: {
validator: $.optional.type(ID),
- transform: transform,
desc: {
'ja-JP': '対象のユーザーのID',
'en-US': 'Target user ID'
@@ -29,7 +27,6 @@ export const meta = {
userIds: {
validator: $.optional.arr($.type(ID)).unique(),
- transform: transformMany,
desc: {
'ja-JP': 'ユーザーID (配列)'
}
@@ -68,42 +65,40 @@ export default define(meta, async (ps, me) => {
let user;
if (ps.userIds) {
- const users = await User.find({
- _id: {
- $in: ps.userIds
- }
+ const users = await Users.find({
+ id: In(ps.userIds)
});
- return await Promise.all(users.map(u => pack(u, me, {
+ return await Promise.all(users.map(u => Users.pack(u, me, {
detail: true
})));
} else {
// Lookup user
if (typeof ps.host === 'string') {
- user = await resolveRemoteUser(ps.username, ps.host, cursorOption).catch(e => {
+ user = await resolveRemoteUser(ps.username, ps.host).catch(e => {
apiLogger.warn(`failed to resolve remote user: ${e}`);
throw new ApiError(meta.errors.failedToResolveRemoteUser);
});
} else {
const q: any = ps.userId != null
- ? { _id: ps.userId }
+ ? { id: ps.userId }
: { usernameLower: ps.username.toLowerCase(), host: null };
- user = await User.findOne(q, cursorOption);
+ user = await Users.findOne(q);
}
- if (user === null) {
+ if (user == null) {
throw new ApiError(meta.errors.noSuchUser);
}
// ユーザー情報更新
- if (isRemoteUser(user)) {
+ if (Users.isRemoteUser(user)) {
if (user.lastFetchedAt == null || Date.now() - user.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) {
resolveRemoteUser(ps.username, ps.host, { }, true);
}
}
- return await pack(user, me, {
+ return await Users.pack(user, me, {
detail: true
});
}