module['exports'] = function bot (hook) {
  var request = require('request');
  var TOKEN = hook.env.bot_scheduler_token;
  var ENDPOINT = 'https://api.telegram.org/bot' + TOKEN;
  
  console.log(hook.params);

  // generic handler to log api call responses
  var handler = function (err, httpResponse, body) {
    var response = JSON.stringify({
      err: err ? err : false,
      statusCode: httpResponse.statusCode,
    });
    hook.res.end(response);
  };

  var type = hook.params.type;
  var data = hook.params.data;

  if (type == "message") {
    request.post({
      url: ENDPOINT + '/sendMessage',
      formData: data
    }, handler);
  }

  if (type == "photo") {
    data.photo = request(data.photo);
    request.post({
      url: ENDPOINT + '/sendPhoto',
      formData: data
    }, handler);
  }

  if (type == "audio") {
    data.audio = request(data.audio);
    request.post({
      url: ENDPOINT + '/sendAudio',
      formData: data
    }, handler);
  }

  if (type == "document") {
    data.document = request(data.document);
    request.post({
      url: ENDPOINT + '/sendDocument',
      formData: data
    }, handler);
  }

  if (type == "sticker") {
    data.sticker = request(data.sticker);
    request.post({
      url: ENDPOINT + '/sendSticker',
      formData: data
    }, handler);
  }

  if (type == "video") {
    data.video = request(data.video);
    request.post({
      url: ENDPOINT + '/sendVideo',
      formData: data
    }, handler);
  }

  if (type == "voice") {
    data.voice = request(data.voice);
    request.post({
      url: ENDPOINT + '/sendVoice',
      formData: data
    }, handler);
  }

  if (type == "location") {
    request.post({
      url: ENDPOINT + '/sendLocation',
      formData: data
    }, handler);
  }

  if (type == "venue") {
    request.post({
      url: ENDPOINT + '/sendVenue',
      formData: data
    }, handler);
  }

  if (type == "contact") {
    request.post({
      url: ENDPOINT + '/sendContact',
      formData: data
    }, handler);
  }
}