From 47a76e2f5be07e43f8caa3402d3ccf20119b30a0 Mon Sep 17 00:00:00 2001 From: plane000 Date: Sat, 1 Sep 2018 21:30:46 +0100 Subject: [PATCH] fixed bug where res would time out --- src/controllers/middleware/rateLimits.js | 2 +- src/controllers/routes/router.js | 10 +++++----- src/controllers/user.js | 4 ++-- src/models/api/APIErrors.js | 5 +---- src/models/api/userResponses.js | 6 +----- src/models/database/sqlite/database.sqlite | Bin 28672 -> 28672 bytes src/models/database/users.js | 4 ++++ 7 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/controllers/middleware/rateLimits.js b/src/controllers/middleware/rateLimits.js index d1cf7e2..2e22893 100644 --- a/src/controllers/middleware/rateLimits.js +++ b/src/controllers/middleware/rateLimits.js @@ -10,7 +10,7 @@ export class RateLimits extends MiddleWare{ let ip = req.connection.remoteAddress; if (!buckets[ip]) { - console.log(`New bucket`) + Logger.debug(`New rate limiting bucket`); RateLimits.newBucket(ip); next(); return; diff --git a/src/controllers/routes/router.js b/src/controllers/routes/router.js index 30d103b..56ff231 100644 --- a/src/controllers/routes/router.js +++ b/src/controllers/routes/router.js @@ -12,13 +12,13 @@ export class Router { 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.delete('/user/:id', [MiddleWare.end]); - app.post('/user', [MiddleWare.end, Controllers.UserController.newUser]); + app.get('/user/:id', [MiddleWare.RateLimits.request, MiddleWare.analytics,]); + app.delete('/user/:id', [MiddleWare.RateLimits.request, MiddleWare.analytics,]); + 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'); } diff --git a/src/controllers/user.js b/src/controllers/user.js index f232396..ef59eaa 100644 --- a/src/controllers/user.js +++ b/src/controllers/user.js @@ -24,8 +24,8 @@ export class UserController extends ControllerHandler { 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 (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('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'); let id = new Date().getTime(); let token = "1234"; diff --git a/src/models/api/APIErrors.js b/src/models/api/APIErrors.js index 5139e7f..d242bd1 100644 --- a/src/models/api/APIErrors.js +++ b/src/models/api/APIErrors.js @@ -1,9 +1,6 @@ import {API} from './API'; export class APIErrors extends API { - // get errors() {return this.errors} - // set errors(err) {this.errors = err} - constructor(res) { super() 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.status.code = statusCode; this.errors.status.type = message; - this.errors.status.message = verbose; + this.errors.status.message = message; } count() { return this.errors.error.errors.length } diff --git a/src/models/api/userResponses.js b/src/models/api/userResponses.js index f0fd6e3..ac94b1d 100644 --- a/src/models/api/userResponses.js +++ b/src/models/api/userResponses.js @@ -3,7 +3,6 @@ import {API} from './API'; export class User extends API { constructor(res, id, username, email, updated, token) { super(); - this.res = res; this.response = { status: { error: false, @@ -27,9 +26,6 @@ export class User extends API { } endpoint() { - this.res - .setHeader('Content-type', 'application/json') - .status(200) - .end(JSON.stringify(this.response, false, 4)); + this.res.status(200).end(JSON.stringify(this.response, false, 4)); } } diff --git a/src/models/database/sqlite/database.sqlite b/src/models/database/sqlite/database.sqlite index 9c1b67394fd21a050bd99c7ddadf2d826c43b5fc..0a882ad7f870054eb84180e089199ed8c4a95df4 100644 GIT binary patch delta 160 zcmZp8z}WDBae_1>%S0JxMwX2UOZeFs`AZr2OE)VjWb=zOaxn6+%F3Dwt8<77dU`UZ zPP_PT@&YN{5MyIAGfN{&V?!fj6J0|i149d414~^4Lj@xPDnuD4bUmK@gH`iLs^s2(d=E|AxJa$J*nXNkM(}lcfAu zh$ij{b3e-WlRwXWk+_$ZuHY?Ln-H@214 z()R1YCu(-bt}2z%I~CT~aU0HV+p#+i`|z>8gMGHzvA*6q#ZFbZ$U;=gmrKg}TNPz} zYi*7Fn%?RohtFlA(R6V^6x?Rbx$WJovy-$P`=Hb6zTfH9u|s=}nEz%dmQJO_L$8a# z*1XP_@L>78i`V||Mc19(POBYMcgwE3thQr42S>kymEzpqciWB^tp9&1UkXRlZ=}Xm z&P&*#{5f(sFLrDGG}5j4z;oJsnHj8^cm0=|`Fc&e;RH48+n)D9t9`VIordk!gJE|+ zXx447Gra9@Ic;~(?d}Za^=-C$ou%g(6c4`JsvUg`-oaNAi3bEA009U<00Izz00f?+fG@=pk;O&h zr6nmfUoMNzm(7RY?$_<6LkPLTUn!yN{fAz+^ZYgb2f4c2Y7`2T8k%8cO=_A{(`i=I zGc-%6l_B{Ip$fGMTE3u}D%EnzYlIXCnLO%CvqMpCeD%jvQF8elA^H5sC^`21DywC5 zl%Y{yl7^zZ|IypiMX@Zyq}IqNdOL?Py+D8Z;NMNdSz z^b}EY&mv0XM3m*Hh(absArn>lqrMa#jw0QiGK!I72h*4+G^bKJb^{HJ`ch~x%IEsu z^HW4Iv+QWr^JGB9%4qCh)(RRso^>@(v;mcIqkeoQ5n4Kt`s*{F7{^@_H{&|w4h}RdRDb^C&G*z^%G(u%qBS& zhEH;_cYjF*X}p?yy>)PHTp+4amGFtqU{joK=!WUm_HG=-$>tT3FHnOY(z-EtNL!iF zqj5H$$K^YM{78N*|0O?=@5?{QKgi$7->^