https://github.com/sgmap/mes-aides-ui
Raw File
Tip revision: a6358df1e6b31b25a13c44761752fee8ca3e3909 authored by Thomas Guillet on 05 May 2021, 06:08:18 UTC
Affiche la pension alimentaire dans les ressources pour tous
Tip revision: a6358df
mjml.js
#!/usr/bin/env node
/* eslint-disable no-console */

var express = require('express');

require('./backend/api');
var Followup = require('mongoose').model('Followup');
var renderInitial = require('./backend/lib/mes-aides/emails/initial').render;
var renderSurvey = require('./backend/lib/mes-aides/emails/survey').render;

var port = process.env.PORT || 9001;

// Setup Express
var app = express();

const typeKeys = ['initial', 'survey']

app.route('/').get(function(req, res) {
  Followup.find().sort({createdAt: -1})
  .exec(function(err, docs) {
    res.send(`
      <html><body><h1>List</h1><ul>
      ${docs.map(d => `
        <li>
          ${d._id}&nbsp;
          <ul>
            ${typeKeys.map(t => `<li>${t} <a href="mjml/${d._id}/${t}?mode=html">HTML</a> <a href="mjml/${d._id}/${t}?mode=text">texte</a></li>`).join('')}
          </ul>
        </li>
        `)}</ul></body></html>
`)
  })
})

app.route('/mjml/:id/:type').get(function(req, res) {
    Followup
        .findOne({ _id: req.params.id })
        .populate('situation')
        .exec(function(err, followup) {
          console.log('followup', { _id: req.params.id }, followup)

            const p = req.params.type == 'initial' ? renderInitial(followup) : followup.createSurvey().then(s => followup.renderSurveyEmail(s))
            p.then(function(result) {
              const mode = req.query.mode || 'html'
              if (mode == 'html') {
                res.send(result[mode]);
              } else {
                res.set({'Content-Type': 'text/plain'}).send(result[mode]);
              }
            });
        });
});

// Start server
app.listen(port, function () {
    console.log('Mes Aides MJML preview server listening on port %d, in %s mode', port, app.get('env'));
});

module.exports = app;
back to top