summaryrefslogtreecommitdiff
path: root/src/server/api/limiter.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-14 20:38:55 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-14 20:38:55 +0900
commitd66e4b7ff97d512e2a2523815e2eef170456b37f (patch)
tree59ae1a102d88b5c2c2236b734ea4a584b4f9ba46 /src/server/api/limiter.ts
parent10.100.0 (diff)
parent11.0.0 (diff)
downloadmisskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.tar.gz
misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.tar.bz2
misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.zip
Merge branch 'develop'
Diffstat (limited to 'src/server/api/limiter.ts')
-rw-r--r--src/server/api/limiter.ts20
1 files changed, 7 insertions, 13 deletions
diff --git a/src/server/api/limiter.ts b/src/server/api/limiter.ts
index 3d66172fd8..48d12d3cc6 100644
--- a/src/server/api/limiter.ts
+++ b/src/server/api/limiter.ts
@@ -2,19 +2,13 @@ import * as Limiter from 'ratelimiter';
import limiterDB from '../../db/redis';
import { IEndpoint } from './endpoints';
import getAcct from '../../misc/acct/render';
-import { IUser } from '../../models/user';
+import { User } from '../../models/entities/user';
import Logger from '../../services/logger';
const logger = new Logger('limiter');
-export default (endpoint: IEndpoint, user: IUser) => new Promise((ok, reject) => {
- // Redisがインストールされてない場合は常に許可
- if (limiterDB == null) {
- ok();
- return;
- }
-
- const limitation = endpoint.meta.limit;
+export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => {
+ const limitation = endpoint.meta.limit!;
const key = limitation.hasOwnProperty('key')
? limitation.key
@@ -38,10 +32,10 @@ export default (endpoint: IEndpoint, user: IUser) => new Promise((ok, reject) =>
// Short-term limit
function min() {
const minIntervalLimiter = new Limiter({
- id: `${user._id}:${key}:min`,
+ id: `${user.id}:${key}:min`,
duration: limitation.minInterval,
max: 1,
- db: limiterDB
+ db: limiterDB!
});
minIntervalLimiter.get((err, info) => {
@@ -66,10 +60,10 @@ export default (endpoint: IEndpoint, user: IUser) => new Promise((ok, reject) =>
// Long term limit
function max() {
const limiter = new Limiter({
- id: `${user._id}:${key}`,
+ id: `${user.id}:${key}`,
duration: limitation.duration,
max: limitation.max,
- db: limiterDB
+ db: limiterDB!
});
limiter.get((err, info) => {