core: optimize token.getRecent

This commit is contained in:
undefined committed 2021-05-03 19:27:04 +08:00
1 parent 50b8343ad9
commit 2c3fd7364a
3 files changed
+5 -6

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "hydrooj",
"version": "2.24.3",
"version": "2.24.4",
"bin": "bin/hydrooj.js",
"main": "dist/loader.js",
"typings": "dist/loader.d.ts",
+2 -2
View File
@@ -2,7 +2,7 @@ import moment from 'moment-timezone';
import {
UserAlreadyExistError, InvalidTokenError, VerifyPasswordError,
UserNotFoundError, SystemError, BlacklistedError,
UserFacingError, LoginError, NotFoundError,
UserFacingError, LoginError,
} from '../error';
import { User } from '../interface';
import {
@@ -178,7 +178,7 @@ class UserLostPassWithCodeHandler extends Handler {
class UserDetailHandler extends Handler {
@param('uid', Types.Int)
async get(domainId: string, uid: number) {
if (uid === 0) throw new NotFoundError(this.request.path);
if (uid === 0) throw new UserNotFoundError(0);
const isSelfProfile = this.user._id === uid;
const udoc = await user.getById(domainId, uid);
if (!udoc) throw new UserNotFoundError(uid);
+2 -3
View File
@@ -78,13 +78,12 @@ class TokenModel {
@ArgMethod
static getSessionListByUid(uid: number) {
return TokenModel.coll.find({ uid, tokenType: TokenModel.TYPE_SESSION }).sort('updateAt', -1).toArray();
return TokenModel.coll.find({ uid, tokenType: TokenModel.TYPE_SESSION }).sort('updateAt', -1).limit(100).toArray();
}
@ArgMethod
static async getMostRecentSessionByUid(uid: number) {
const res = await TokenModel.coll.find({ uid, tokenType: TokenModel.TYPE_SESSION }).sort('updateAt', -1).toArray();
return res[0];
return await TokenModel.coll.findOne({ uid, tokenType: TokenModel.TYPE_SESSION }, { sort: { updateAt: -1 } });
}
@ArgMethod