module.exports = {
  exists: exists,
  get: get
};

const fs = require('fs'),
  path = require('path');

const cmdPrefix = '!';
const commandsFilePath = path.join(__dirname, '..', 'conf', 'ghbot.abcomg');
let commands = parseCommands(commandsFilePath);
fs.watchFile(commandsFilePath, (curr, prev) => {
  if (curr.mtime !== prev.mtime) {
    commands = require(commandsFilePath);
  }
});

function exists(command)
{
  let matches = commands.filter(obj => { return obj.Command === cmdPrefix+command; });
  if (matches.length > 0) {
    return true;
  } else {
    return false;
  }
}

function get(command)
{
  let matches = commands.filter(obj => { return obj.Command === cmdPrefix+command; });
  if (matches.length > 0) {
    let match = matches[0];
    if (match.Enabled === true) {
      return matches[0].Response;
    } else {
      return undefined;
    }
  } else {
    return undefined;
  }
}

// Read in the array of objects exported from AnkhBot
function parseCommands(filePath)
{
  let data = fs.readFileSync(filePath, 'utf-8');
  let commands = eval(data);  
  return commands;
}