var express = require('express');
var router = express.Router();
var nodemailer = require('nodemailer');
var mg = require('nodemailer-mailgun-transport');
const fs = require('fs-extra');
const pug = require('pug');
router.post('/', function(req, res) {
	fs.readJson('config/site-settings.json')
		.then(settings => {
			let transport = '';
			var auth = '';
			switch (settings.email.active) {
				case 'option-smtp':
					auth = {
						host: settings.email.smtp.domain,
						port: 587,
						secure: false,
						auth: {
							type: 'login',
							email: settings.email.smtp,
							password: settings.email.smtp.password
						}
					};
					transport = nodemailer.createTransport(auth);
					break;
				case 'option-mg':
					auth = {
						auth: {
							api_key: settings.email.mailgun['api-key'],
							domain: settings.email.mailgun.domain
						}
					};
					transport = nodemailer.createTransport(mg(auth));
					break;
			}
			let render = pug.compileFile('themes/dash/email/base.pug');
			let html = render({
				title: settings.title,
				header: 'a note from ' + settings.title,
				content: req.body.content,
				footer: 'powered by fipamo'
			});
			transport.sendMail(
				{
					from: 'control@playvico.us',
					to: 'are0h@protonmail.com', // An array if you have multiple recipients.
					subject: 'Hey beautiful',
					//You can use "html:" to send HTML email content. It's magic!
					html: html
					//You can use "text:" to send plain-text content. It's oldschool!
					//text: 'Mailgun rocks, pow pow!'
				},
				function(err, info) {
					if (err) {
						//console.log(err);
						res.json({
							message: 'MAIL ERROR',
							desc: err
						});
					} else {
						//console.log(info);
						res.json({
							message: 'MAIL SENT',
							desc: info
						});
					}
				}
			);
		})
		.catch(() => {
			//console.error(err);
		});
});
module.exports = router;
