index.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const express = require('express')
  2. const app = express()
  3. app.use(express.json())
  4. const port = 3103
  5. var chalk = require("chalk");
  6. var uniqid = require('uniqid');
  7. var db = require("kairoscope-db-models");
  8. var helpers = require('./helpers');
  9. helpers.check_env_variables();
  10. db.start().then(() => {
  11. app.get('/', (req, res) => {
  12. res.send("Mail Delivery Service");
  13. })
  14. app.post('/send', (req, res) => {
  15. if(req.body == undefined){
  16. console.log(`Received delivery request for message with no data. Aborting`);
  17. res.status(400).json({ error: 'No data'}).end();
  18. return;
  19. }
  20. if(req.body.from == "" || req.body.from == undefined){
  21. console.log(`Received delivery request for message with no from email. Aborting`);
  22. res.status(400).json({ error: 'Missing \'from\' field'}).end();
  23. return;
  24. }
  25. if(req.body.to == "" || req.body.to == undefined){
  26. console.log(`Received delivery request for message with no to email. Aborting`);
  27. res.status(400).json({ error: 'Missing \'to\' field'}).end();
  28. return;
  29. }
  30. if(req.body.message == "" || req.body.message == undefined){
  31. console.log(`Received delivery request for message with no to message. Aborting`);
  32. res.status(400).json({ error: 'Missing \'message\' field'}).end();
  33. return;
  34. }
  35. if(req.body.subject == "" || req.body.subject == undefined){
  36. console.log(`Received delivery request for message with empty subject. Aborting`);
  37. res.status(400).json({ error: 'Missing \'subject\' field'}).end();
  38. return;
  39. }
  40. var subject = chalk.italic(`\'${req.body.subject}\'`);
  41. var to = chalk.italic(`\'${req.body.to}\'`);
  42. var from = chalk.italic(`\'${req.body.from}\'`);
  43. var id = uniqid();
  44. var id_text = chalk.italic(`\'${id}\'`);
  45. console.log(`Delivering email ${subject} (${id_text}) to ${to} from ${from}`);
  46. //console.log(req.body);
  47. res.status(200).end();
  48. helpers.send_mail(req.body, id);
  49. })
  50. app.listen(port, () => {
  51. console.log(`Mail Delivery Service listening at ${chalk.cyan(`http://localhost:${port}`)}`);
  52. })
  53. });