var express = require('express');
const basicAuth = require('express-basic-auth')

const { getUsers } = require('./lib/getUsers')

var indexRouter = require('./routes/index');
var getUserAccounts = require('./routes/getUserAccounts')
var singleUserCheck = require('./routes/singleCheck')
var addAccount = require('./routes/addAccount')
var deleteAccount = require('./routes/deleteAccount')
var login = require('./routes/login')
var app = express();


let usersList = getUsers()

const users = {
  users: usersList,
  challenge: true
}
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use('/', indexRouter);
app.use('/login', basicAuth(users), login)
app.use('/getUserAccounts', basicAuth(users), getUserAccounts);
app.use('/singleCheck', basicAuth(users), singleUserCheck)
app.use('/addAccount', basicAuth(users), addAccount)
app.use('/deleteAccount', basicAuth(users), deleteAccount)

// catch 404 and forward to error handler
app.use(function (req, res, next) {
  next(createError(404));
});

// error handler
app.use(function (err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;