const Cryptr = require('cryptr');
const cryptr = new Cryptr('BBLBTV-DNS-PASSWORDS');

const sql = require('./mysql')

function storeAccountToDB(accountDetails) {
  const encryptedPassword = cryptr.encrypt(accountDetails.password);
  const result = sql.query(`INSERT userAccounts (username, password, stream, userID) VALUES ("${accountDetails.username}", "${encryptedPassword}", "${accountDetails.stream}", ${accountDetails.userId})`);
  return result
}

function retrievePasswordFromDB(user, userAccUser) {
  let userId
  try {
    userId = sql.query(`SELECT u.id FROM users u WHERE u.userName = '${user}'`);
    userId = userId[0].id
  } catch (error) {
    console.log('User not found')
    return (error)
  }

  let accountPassword

  accountPassword = sql.query(`SELECT DISTINCT
  userAccounts.username,
  userAccounts.password,
  userAccounts.userID
FROM users,
     userAccounts,
     streams
WHERE userAccounts.userID = ${userId} AND userAccounts.username = '${userAccUser}'`)

  if (accountPassword == 0) {
    throw new Error('Account ' + userAccUser + ' not found for user ' + user)
  } else {
    const decryptedString = cryptr.decrypt(accountPassword[0].password);
    console.log(decryptedString)
    return decryptedString
  }
}



// retrievePasswordFromDB('Karl', 'Karl2903')

module.exports = {
  storeAccountToDB,
  retrievePasswordFromDB
}