const config = require('./speechConfig.js');
const winstonSlackWebHook = require('winston-slack-webhook').SlackWebHook;

module.exports = (winston) => {
  if (config.logging.slackWebHook) {
    // add a transport for errors to slack
    if (config.logging.slackErrorChannel) {
      winston.add(winstonSlackWebHook, {
        name      : 'slack-errors-transport',
        level     : 'warn',
        webhookUrl: config.logging.slackWebHook,
        channel   : config.logging.slackErrorChannel,
        username  : 'spee.ch',
        iconEmoji : ':face_with_head_bandage:',
      });
    };
    if (config.logging.slackInfoChannel) {
      winston.add(winstonSlackWebHook, {
        name      : 'slack-info-transport',
        level     : 'info',
        webhookUrl: config.logging.slackWebHook,
        channel   : config.logging.slackInfoChannel,
        username  : 'spee.ch',
        iconEmoji : ':nerd_face:',
      });
    };
    // send test message
    winston.error('Slack "error" logging is online.');
    winston.info('Slack "info" logging is online.');
  } else {
    winston.warn('Slack logging is not enabled because no slackWebHook config var provided.');
  }
};