From 413d458a803d32ad3d8d04ef5b38a2e1bbe8394c Mon Sep 17 00:00:00 2001 From: Alexis <35.alexis.pele@gmail.com> Date: Mon, 18 Jan 2021 22:06:19 +0100 Subject: [PATCH] Added auth routes entry point --- api/index.js | 27 ++++++++--------------- api/routes/auth.js | 53 +++++++++++++++++++++++++++++++++++++++++++++ api/routes/index.js | 15 ++++++++----- 3 files changed, 71 insertions(+), 24 deletions(-) create mode 100644 api/routes/auth.js diff --git a/api/index.js b/api/index.js index 1165be8..54bae52 100644 --- a/api/index.js +++ b/api/index.js @@ -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); \ No newline at end of file diff --git a/api/routes/auth.js b/api/routes/auth.js new file mode 100644 index 0000000..34aa56a --- /dev/null +++ b/api/routes/auth.js @@ -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 \ No newline at end of file diff --git a/api/routes/index.js b/api/routes/index.js index f2a3aa5..87f95dd 100644 --- a/api/routes/index.js +++ b/api/routes/index.js @@ -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,