Update for pull request

This commit is contained in:
Tanya Byrne
2020-08-19 20:14:16 +01:00
parent 1124e70a54
commit 7b77a9d7a1
3 changed files with 26 additions and 40 deletions

View File

@@ -26,18 +26,19 @@ const defaults = {
STORAGE_LOCAL_ROOT: './uploads',
},
redisServer: {
REDIS_HOST: '127.0.0.1',
REDIS_PORT: '6379',
REDIS_PASSWORD: null,
SREDIS_HOST: '127.0.0.1',
SREDIS_PORT: '6379',
SREDIS_PASSWORD: null,
},
rateLimits: {
RATE_LIMIT_TYPE: 'redis',
CONSUMED_POINTS_LIMIT: 5,
CONSUMED_RESET_DURATION: 1,
EXEC_EVENLY: true,
BLOCK_POINT_DURATION: 0,
INMEMORY_BLOCK_CONSUMED: 200,
INMEMEMORY_BLOCK_DURATION: 30,
REDIS_POINTS: 5,
REDIS_EXEC_EVENLY: true,
REDIS_BLOCK_DURATION: 0,
REDIS_INMEMORY_BLOCK_ON_CONSUMED: 200,
REDIS_INMEMEMORY_BLOCK_DURATION: 30,
},
security: {
KEY: uuidv4(),

View File

@@ -5,6 +5,7 @@ import {
IRateLimiterStoreOptions,
IRateLimiterOptions,
} from 'rate-limiter-flexible';
import camelcase from 'camelcase';
import { RedisNotFoundException } from '../exceptions';
import env from '../env';
@@ -40,9 +41,9 @@ function getRateLimiterRedisConfig(): IRateLimiterStoreOptions {
const redisConfig: any = {};
const redisClient = redis.createClient({
enable_offline_queue: false,
host: env.REDIS_HOST,
port: env.REDIS_PORT,
password: env.REDIS_PASSWORD,
host: env.SREDIS_HOST,
port: env.SREDIS_PORT,
password: env.SREDIS_PASSWORD,
});
if (!redisClient) {
@@ -53,29 +54,12 @@ function getRateLimiterRedisConfig(): IRateLimiterStoreOptions {
redisConfig.storeClient = redisClient;
for (const [key, value] of Object.entries(env)) {
if (key === 'CONSUMED_POINTS_LIMIT') {
redisConfig.points = value;
continue;
}
if (key === 'CONSUMED_RESET_DURATION') {
redisConfig.duration = value;
continue;
}
if (key === 'EXEC_EVENLY') {
redisConfig.execEvenly = value;
continue;
}
if (key === 'BLOCK_POINT_DURATION') {
redisConfig.blockDuration = value;
continue;
}
if (key === 'INMEMORY_BLOCK_CONSUMED') {
redisConfig.inmemoryBlockOnConsumed = value;
continue;
}
if (key === 'INMEMEMORY_BLOCK_DURATION') {
redisConfig.inmemoryBlockDuration = value;
continue;
if (key.startsWith('REDIS')) {
// amended as we want the second and third words
const configKey = camelcase(
key.split('_').filter((_, index) => [0, 0].includes(index) === false)
);
redisConfig[configKey] = value;
}
}