mirror of
https://github.com/sergeyyarkov/digital-store.git
synced 2026-10-11 18:29:11 +03:00
orders component
This commit is contained in:
parent
6d6df14b27
commit
70ebf728fe
@ -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'});
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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});
|
||||||
|
|||||||
4
dist/public/js/admin.js
vendored
4
dist/public/js/admin.js
vendored
File diff suppressed because one or more lines are too long
4
dist/public/js/main.js
vendored
4
dist/public/js/main.js
vendored
File diff suppressed because one or more lines are too long
3
dist/views/main/my-orders.pug
vendored
3
dist/views/main/my-orders.pug
vendored
@ -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') Узнать
|
||||||
|
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user