Added auth routes entry point

This commit is contained in:
Alexis
2021-01-18 22:06:19 +01:00
parent bb721e6ab4
commit 413d458a80
3 changed files with 71 additions and 24 deletions

View File

@@ -8,12 +8,9 @@ const morgan = require('morgan');
const cors = require('cors'); // module to format the json response
const dotenv = require('dotenv').config();
// Creates instances of database connections
const connection = require('./database/bookshelf');
const db = connection.db;
// CONSTANTS
const port = 2814;
const base_url = 'http://localhost:2814/api';
// Import routes
const routes = require('./routes');
@@ -33,19 +30,13 @@ app.use(helmet());
// Server
app.listen(port, () => console.log(`App listening on port ${port}`));
// TEMP Auth guard
const authguard = (req, res, next) => {
// if (req.headers.auracle_key !== process.env.API_KEY_PUBLIC) {
// return res.status(401).send('The API key is either missing or incorrect.');
// } else {
next();
// }
}
// Entry route
app.use('/api/v1/', routes.auth );
// Routing
app.use('/api/spells', authguard, routes.spells);
app.use('/api/schools', authguard, routes.schools);
app.use('/api/meta_schools', authguard, routes.meta_schools);
app.use('/api/variables', authguard, routes.variables);
app.use('/api/ingredients', authguard, routes.ingredients);
app.use('/api/users', authguard, routes.users);
app.use('/api/v1/spells', routes.spells);
app.use('/api/v1/schools', routes.schools);
app.use('/api/v1/meta_schools', routes.meta_schools);
app.use('/api/v1/variables', routes.variables);
app.use('/api/v1/ingredients', routes.ingredients);
app.use('/api/v1/users', routes.users);

53
api/routes/auth.js Normal file
View File

@@ -0,0 +1,53 @@
'use strict'
// Router
const express = require('express');
let router = express.Router();
// Repository
const UserRepository = require('../repositories/user-repository');
const Users = new UserRepository();
// ROUTES
// ENTRY POINT
const authUser = (mail, password) => {
return Users.logUserToAPI(mail, password)
.catch(err => {
throw err
})
}
router.get('/login', async (req, res) => {
authUser(req.body.mail, req.body.password)
.then(v => {
res.setHeader('Content-Type', 'application/json;charset=utf-8')
res.end(JSON.stringify(v))
})
.catch(err => {
res.status(err.code).send(JSON.stringify(
{
"error": err.message,
"code": err.code
})
)
})
})
// GEN API TOKEN
const generateAPIToken = (mail, password) => {
return Users.genAPIToken(mail, password)
.catch(err => {
throw err
})
}
router.get('/genToken', async (req, res) => {
generateAPIToken(req.body.mail, req.body.password)
.then(v => {
res.setHeader('Content-Type', 'application/json;charset=utf-8')
res.end(JSON.stringify(v))
})
.catch(err => {
res.status(err.code).send(JSON.stringify(err))
})
})
module.exports = router

View File

@@ -1,11 +1,14 @@
const spells = require('./spells')
const schools = require('./schools')
const meta_schools = require('./meta_schools')
const variables = require('./variables')
const ingredients = require('./ingredients')
const users = require('./users')
const spells = require('./spells');
const schools = require('./schools');
const meta_schools = require('./meta_schools');
const variables = require('./variables');
const ingredients = require('./ingredients');
const users = require('./users');
const auth = require('./auth');
module.exports = {
auth,
spells,
schools,
meta_schools,