1
0

accountController.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* jshint esversion: 6 */
  2. const config = require('../../config.js'),
  3. Slack = require('../slack.js').Slack,
  4. accountManager = require('../models/accounts.js').accountManager,
  5. accountConfigManager = require('../models/accountConfig.js').accountConfigManager;
  6. module.exports.AccountController = {
  7. onRequest: function(req, res, srv) {
  8. if (req.urlObj.match(["account", "cguAccept"]) && req.method === "PUT") {
  9. req.account.dirty = true;
  10. req.account.cguReadAndAccepted = true;
  11. accountManager.save(req.account, () => {});
  12. res.writeHeader("204", "No Content");
  13. res.end();
  14. } else if (req.urlObj.urlParts[1] === "addservice") {
  15. switch (req.urlObj.urlParts[2]) {
  16. case "slack":
  17. Slack.getOauthToken(req.urlObj.queryTokens.code, config.rootUrl +"account/addservice/slack", (teamName, teamId, token) => {
  18. if (token) {
  19. req.account.edit().addService("Slack", teamName, teamId, token);
  20. accountManager.save(req.account);
  21. accountConfigManager.defaultForAccount(req.account.id, (accConfig) => {
  22. accConfig.edit().config.addService("Slack", teamName, teamId);
  23. accountConfigManager.save(accConfig);
  24. });
  25. }
  26. res.writeHeader("302", {
  27. Location: config.rootUrl
  28. });
  29. res.end();
  30. });
  31. break;
  32. default:
  33. srv.execTemplate(require('../template/_404.js'), req, res);
  34. break;
  35. }
  36. } else {
  37. srv.execTemplate(require('../template/_404.js'), req, res);
  38. }
  39. }
  40. };