index.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. const express = require('express')
  2. const app = express()
  3. app.use(express.json())
  4. app.use(express.static('public'));
  5. const port = 3104
  6. var chalk = require("chalk");
  7. var db = require("kairoscope-db-models");
  8. var e = chalk.red('ERROR:');
  9. db.start_database().then(() => {
  10. app.get('/', (req, res) => {
  11. res.send("Mail Analytics Service");
  12. })
  13. app.get('/track/:id/image.png', function(req, res, next){
  14. var id = req.params.id;
  15. res.sendFile('image.png', {root: './public'});
  16. db.SentMail.findOne({message_id: id}).then((message) => {
  17. if(message != undefined) {
  18. message.opened = true;
  19. message.save().then((message) => {
  20. console.log(`Tracking email ${chalk.italic(id)}`);
  21. }).catch((error) => { console.log(error); });
  22. } else {
  23. console.log(`${e} Tracking code not in database! (${chalk.italic(id)})`);
  24. }
  25. }).catch((error) => { console.log(error); });
  26. });
  27. app.listen(port, () => {
  28. console.log(`Mail Analytics Service listening at ${chalk.cyan(`http://localhost:${port}`)}`);
  29. })
  30. })