All files / Zapcard_API/controllers auth.js

0% Statements 0/26
0% Branches 0/10
0% Functions 0/5
0% Lines 0/21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                                                             
const AuthService = require('../services/auth.service');
 
const authenticate = req => new Promise(async (resolve, reject) => {
  try {
    if (req.path() === '/users/' && req.method === 'POST') return resolve();
    if (req.path() === '/auth' && req.method === 'POST') return resolve();
    if (!req.headers.authorization) return reject(Error('No token'));
    const token = (req.headers.authorization.replace(/^Bearer\s/, ''));
    req.authenticatedUser = await AuthService.authenticate(token);
    return resolve();
  } catch (err) {
    return reject(err);
  }
});
 
const login = req => new Promise(async (resolve, reject) => {
  try {
    const tokenUserObject = await AuthService.login(req.body);
    return resolve(tokenUserObject);
  } catch (err) {
    return reject(err);
  }
});
 
const authorize = async (req, callback) => {
  try {
    await AuthService.authorize(req.authenticated_user, req.params.userId);
    callback(null);
  } catch (err) {
    callback(err);
  }
};
 
module.exports = {
  authenticate,
  authorize,
  login,
};