fixed bug where res would time out
This commit is contained in:
@@ -10,7 +10,7 @@ export class RateLimits extends MiddleWare{
|
|||||||
let ip = req.connection.remoteAddress;
|
let ip = req.connection.remoteAddress;
|
||||||
|
|
||||||
if (!buckets[ip]) {
|
if (!buckets[ip]) {
|
||||||
console.log(`New bucket`)
|
Logger.debug(`New rate limiting bucket`);
|
||||||
RateLimits.newBucket(ip);
|
RateLimits.newBucket(ip);
|
||||||
next();
|
next();
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -12,13 +12,13 @@ export class Router {
|
|||||||
|
|
||||||
app = Server.App;
|
app = Server.App;
|
||||||
|
|
||||||
app.get('/', [MiddleWare.end, Router.frontPage]);
|
app.get('/', [MiddleWare.RateLimits.request, MiddleWare.analytics, Router.frontPage]);
|
||||||
|
|
||||||
app.get('/user/:id', [MiddleWare.end]);
|
app.get('/user/:id', [MiddleWare.RateLimits.request, MiddleWare.analytics,]);
|
||||||
app.delete('/user/:id', [MiddleWare.end]);
|
app.delete('/user/:id', [MiddleWare.RateLimits.request, MiddleWare.analytics,]);
|
||||||
app.post('/user', [MiddleWare.end, Controllers.UserController.newUser]);
|
app.post('/user', [MiddleWare.RateLimits.request, MiddleWare.analytics, Controllers.UserController.newUser]);
|
||||||
|
|
||||||
app.use([StatusCodes.pageNotFound]);
|
app.get('*', [MiddleWare.RateLimits.request, StatusCodes.pageNotFound]);
|
||||||
Logger.info('HTTP endpoints settup');
|
Logger.info('HTTP endpoints settup');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ export class UserController extends ControllerHandler {
|
|||||||
if (!UserController.isPasswordValid(password)) errors.addError(422, 'Unprocessaable entity', 'Invalid password has spaces');
|
if (!UserController.isPasswordValid(password)) errors.addError(422, 'Unprocessaable entity', 'Invalid password has spaces');
|
||||||
if (password.length < 7) errors.addError(422, 'Unprocessaable entity', 'Invalid password less than 7 charicters');
|
if (password.length < 7) errors.addError(422, 'Unprocessaable entity', 'Invalid password less than 7 charicters');
|
||||||
|
|
||||||
if (await Database.users.getID('username', username) == -1) errors.addError(422, 'Unprocessable entity', 'A user with that username allready exists');
|
if (await Database.users.getID('username', username) != -1) errors.addError(422, 'Unprocessable entity', 'A user with that username allready exists');
|
||||||
if (await Database.users.getID('email', email) == -1) errors.addError(422, 'Unprocessable entity', 'A user with that email allready exists');
|
if (await Database.users.getID('email', email) != -1) errors.addError(422, 'Unprocessable entity', 'A user with that email allready exists');
|
||||||
|
|
||||||
let id = new Date().getTime();
|
let id = new Date().getTime();
|
||||||
let token = "1234";
|
let token = "1234";
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
import {API} from './API';
|
import {API} from './API';
|
||||||
|
|
||||||
export class APIErrors extends API {
|
export class APIErrors extends API {
|
||||||
// get errors() {return this.errors}
|
|
||||||
// set errors(err) {this.errors = err}
|
|
||||||
|
|
||||||
constructor(res) {
|
constructor(res) {
|
||||||
super()
|
super()
|
||||||
this.res = res;
|
this.res = res;
|
||||||
@@ -25,7 +22,7 @@ export class APIErrors extends API {
|
|||||||
this.errors.error.errors.push({status: statusCode, title: message, detail: verbose});
|
this.errors.error.errors.push({status: statusCode, title: message, detail: verbose});
|
||||||
this.errors.status.code = statusCode;
|
this.errors.status.code = statusCode;
|
||||||
this.errors.status.type = message;
|
this.errors.status.type = message;
|
||||||
this.errors.status.message = verbose;
|
this.errors.status.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
count() { return this.errors.error.errors.length }
|
count() { return this.errors.error.errors.length }
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import {API} from './API';
|
|||||||
export class User extends API {
|
export class User extends API {
|
||||||
constructor(res, id, username, email, updated, token) {
|
constructor(res, id, username, email, updated, token) {
|
||||||
super();
|
super();
|
||||||
this.res = res;
|
|
||||||
this.response = {
|
this.response = {
|
||||||
status: {
|
status: {
|
||||||
error: false,
|
error: false,
|
||||||
@@ -27,9 +26,6 @@ export class User extends API {
|
|||||||
}
|
}
|
||||||
|
|
||||||
endpoint() {
|
endpoint() {
|
||||||
this.res
|
this.res.status(200).end(JSON.stringify(this.response, false, 4));
|
||||||
.setHeader('Content-type', 'application/json')
|
|
||||||
.status(200)
|
|
||||||
.end(JSON.stringify(this.response, false, 4));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -66,6 +66,10 @@ export class UserTools extends BaseDatabase {
|
|||||||
let user = await User.findOne({where: {username: search}});
|
let user = await User.findOne({where: {username: search}});
|
||||||
if (user == null) return -1;
|
if (user == null) return -1;
|
||||||
return user;
|
return user;
|
||||||
|
} else if (column == 'email') {
|
||||||
|
let user = await User.findOne({where: {email: search}});
|
||||||
|
if (user == null) return -1;
|
||||||
|
return user;
|
||||||
} else if (column == 'password') {
|
} else if (column == 'password') {
|
||||||
let user = await User.findOne({where: {password: search}});
|
let user = await User.findOne({where: {password: search}});
|
||||||
if (user == null) return -1;
|
if (user == null) return -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user