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 9c1b673..0a882ad 100644 Binary files a/src/models/database/sqlite/database.sqlite and b/src/models/database/sqlite/database.sqlite differ diff --git a/src/models/database/users.js b/src/models/database/users.js index e262c9d..c6541a5 100644 --- a/src/models/database/users.js +++ b/src/models/database/users.js @@ -66,6 +66,10 @@ export class UserTools extends BaseDatabase { let user = await User.findOne({where: {username: search}}); if (user == null) return -1; 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') { let user = await User.findOne({where: {password: search}}); if (user == null) return -1;