var express = require('express');
var router = express.Router();
var request = require('request');
var config = require('../config');

router.get('/', function(req, res) {
  res.render('index', { community: config.community });
});

router.post('/invite', function(req, res) {
  if (req.body.email) {
    request.post({
        url: 'https://'+ config.slackUrl + '/api/users.admin.invite',
        form: {
          email: req.body.email,
          token: config.slacktoken,
          set_active: true
        }
      }, function(err, httpResponse, body) {
        // body looks like:
        //   {"ok":true}
        //       or
        //   {"ok":false,"error":"already_invited"}
        if (err) { return res.send('Error:' + err); }
        body = JSON.parse(body);
        if (body.ok) {
          res.render('result', {
            community: config.community,
            message: 'Success! Check "'+ req.body.email +'" for an invite from Slack.'
          });
        } else {
          var error = body.error;
          if (error === 'already_invited') {
            error = 'You are already invited.'
          } else if (error === 'invalid_email') {
            error = 'The email you entered is an invalid email.'
          }

          res.render('result', {
            community: config.community,
            message: 'Failed! ' + error
          });
        }
      });
  } else {
    res.status(400).send('email is required.');
  }
});

module.exports = router;