Created endpoints for user tasks like login, register and a test endpoint history. A test for checking that session token works as expected.

This commit is contained in:
2017-09-27 16:19:02 +02:00
parent 6ec6c7f9cb
commit 698d2d6072
3 changed files with 74 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
const SearchHistory = require('src/searchHistory/searchHistory');
const searchHistory = new SearchHistory();
/**
* Controller: Retrieves search history of a logged in user
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function historyController(req, res) {
const user = req.loggedInUser;
searchHistory.read(user)
.then((searchQueries) => {
res.send({ success: true, searchQueries });
})
.catch((error) => {
res.status(401).send({ success: false, error: error.message });
});
}
module.exports = historyController;

View File

@@ -0,0 +1,28 @@
const User = require('src/user/user');
const Token = require('src/user/token');
const UserSecurity = require('src/user/userSecurity');
const configuration = require('src/config/configuration').getInstance();
const secret = configuration.get('authentication', 'secret');
const userSecurity = new UserSecurity();
/**
* Controller: Log in a user provided correct credentials.
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function loginController(req, res) {
const user = new User(req.body.username);
const password = req.body.password;
userSecurity.login(user, password)
.then(() => {
const token = new Token(user).toString(secret);
res.send({ success: true, token });
})
.catch((error) => {
res.status(401).send({ success: false, error: error.message });
});
}
module.exports = loginController;

View File

@@ -0,0 +1,24 @@
const User = require('src/user/user');
const UserSecurity = require('src/user/userSecurity');
const userSecurity = new UserSecurity();
/**
* Controller: Register a new user
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function registerController(req, res) {
const user = new User(req.body.username, req.body.email);
const password = req.body.password;
userSecurity.createNewUser(user, password)
.then(() => {
res.send({ success: true, message: 'Welcome to Seasoned!' });
})
.catch((error) => {
res.status(401).send({ success: false, error: error.message });
});
}
module.exports = registerController;