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:
22
seasoned_api/src/webserver/controllers/user/history.js
Normal file
22
seasoned_api/src/webserver/controllers/user/history.js
Normal 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;
|
||||||
28
seasoned_api/src/webserver/controllers/user/login.js
Normal file
28
seasoned_api/src/webserver/controllers/user/login.js
Normal 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;
|
||||||
24
seasoned_api/src/webserver/controllers/user/register.js
Normal file
24
seasoned_api/src/webserver/controllers/user/register.js
Normal 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;
|
||||||
Reference in New Issue
Block a user