orders component

This commit is contained in:
Sergey Yarkov 2020-01-20 19:29:04 +03:00
parent 6d6df14b27
commit 70ebf728fe
6 changed files with 43 additions and 13 deletions

View File

@ -1,4 +1,5 @@
const ObjectID = require('mongodb').ObjectID; const ObjectID = require('mongodb').ObjectID;
const nodemailer = require('../nodemailer.config');
module.exports = function (server, db) { module.exports = function (server, db) {
server.get('/', async (req, res) => { server.get('/', async (req, res) => {
@ -121,4 +122,34 @@ module.exports = function (server, db) {
res.status(500).render('main/404'); res.status(500).render('main/404');
}); });
}); });
server.post('/my-orders', async (req, res) => {
const buyers = await db.collection('buyers').find({email: req.body.email}).toArray();
if (buyers.length > 0) {
// рендерим html
const html = buyers.map((buyer) => {
return `
<b>Номер заказа: ${buyer.bill_id}</b><br>
<b>Дата оплаты: ${new Date(buyer.date).toLocaleDateString()}</b><br>
<b>Данные товара:</b><br>
<p>${buyer.data.join('<br>')}</p>
<p>======================================================================</p>
`;
});
// высылаем данные покупателю
try {
await nodemailer.transporter.sendMail({
from: `"Ваши покупки." <${process.env.EMAIL_LOGIN}>`,
to: req.body.email,
subject: "Данные купленных товаров находятся в этом письме.",
html: html.join('')
});
res.json({status: 'OK'});
} catch (error) {
res.json({status: 'ERR'});
}
} else {
res.json({status: 'NF'});
}
});
} }

View File

@ -34,14 +34,14 @@ module.exports = function(server, db, qiwiApi) {
db.collection('buyers').insertOne({bill_id, email, method, date, amount, data: result}); db.collection('buyers').insertOne({bill_id, email, method, date, amount, data: result});
await nodemailer.transporter.sendMail({ await nodemailer.transporter.sendMail({
from: `"Оплата аккаунта." <${process.env.EMAIL_LOGIN}>`, // sender address from: `"Оплата аккаунта." <${process.env.EMAIL_LOGIN}>`,
to: email, // list of receivers to: email,
subject: "Оплата успешно проведена.", // subject subject: "Оплата успешно проведена.",
text: "Данные купленного товара находятся в этом письме.", // plain text body text: "Данные купленного товара находятся в этом письме.",
html: `<b>Номер заказа: ${bill_id}</b><br> html: `<b>Номер заказа: ${bill_id}</b><br>
<b>Данные товара:</b><br> <b>Данные товара:</b><br>
<p>${result.join('<br>')}</p> <p>${result.join('<br>')}</p>
` // html body `
}); });
res.render('main/success', {result, email}); res.render('main/success', {result, email});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -6,6 +6,7 @@ include ./assets/templates/header.pug
main.main-section main.main-section
include ./assets/templates/modals/cart.pug include ./assets/templates/modals/cart.pug
include ./assets/templates/modals/pay.pug include ./assets/templates/modals/pay.pug
#notification
.container .container
.row .row
.col.s12 .col.s12
@ -22,7 +23,7 @@ main.main-section
form(action='#') form(action='#')
.email-field(style='max-width: 400px;margin-bottom: 10px;') .email-field(style='max-width: 400px;margin-bottom: 10px;')
label(for='email') Почта label(for='email') Почта
input#email(required='' type='text' name='email') input#email(required='' type='email' name='email')
.show-orders .show-orders
button.waves-effect.waves-light.btn(type='submit') Узнать button.waves-effect.waves-light.btn(type='submit') Узнать

View File

@ -4,9 +4,7 @@
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"start": "node config/server.js", "start": "node config/server.js"
"build": "webpack --mode production",
"wp-server": "webpack-dev-server --mode development"
}, },
"repository": { "repository": {
"type": "git", "type": "git",