index.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 helpers = require('./helpers');
  7. helpers.check_env_variables();
  8. helpers.start_database();
  9. app.get('/', (req, res) => {
  10. res.send("Mail Delivery Service");
  11. })
  12. app.post('/send', (req, res) => {
  13. if(req.body == undefined){
  14. console.log(`Received delivery request for message with no data. Aborting`);
  15. res.status(400).json({ error: 'No data'}).end();
  16. return;
  17. }
  18. if(req.body.from == "" || req.body.from == undefined){
  19. console.log(`Received delivery request for message with no from email. Aborting`);
  20. res.status(400).json({ error: 'Missing \'from\' field'}).end();
  21. return;
  22. }
  23. if(req.body.to == "" || req.body.to == undefined){
  24. console.log(`Received delivery request for message with no to email. Aborting`);
  25. res.status(400).json({ error: 'Missing \'to\' field'}).end();
  26. return;
  27. }
  28. if(req.body.message == "" || req.body.message == undefined){
  29. console.log(`Received delivery request for message with no to message. Aborting`);
  30. res.status(400).json({ error: 'Missing \'message\' field'}).end();
  31. return;
  32. }
  33. if(req.body.subject == "" || req.body.subject == undefined){
  34. console.log(`Received delivery request for message with empty subject. Aborting`);
  35. res.status(400).json({ error: 'Missing \'subject\' field'}).end();
  36. return;
  37. } else {
  38. var subject = chalk.italic(`\'${req.body.subject}\'`);
  39. console.log(`Received delivery request for message ${subject}`);
  40. }
  41. //console.log(req.body);
  42. res.status(200).end();
  43. helpers.send_mail(req.body);
  44. })
  45. app.listen(port, () => {
  46. console.log(`Mail Delivery Service listening at ${chalk.cyan(`http://localhost:${port}`)}`);
  47. })