Files
freeplanet_serverside/src/server/router/orders_router.js

132 lines
3.7 KiB
JavaScript
Executable File

const shared_consts = require('../tools/shared_nodejs');
const express = require('express');
const router = express.Router();
const tools = require('../tools/general');
var server_constants = require('../tools/server_constants');
var { Project } = require('../models/project');
var { authenticate, auth_default } = require('../middleware/authenticate');
var mongoose = require('mongoose').set('debug', false)
const Subscription = require('../models/subscribers');
const _ = require('lodash');
const { ObjectID } = require('mongodb');
const Product = require('../models/product');
const Order = require('../models/order');
const Variant = require('../models/variant');
const sendemail = require('../sendemail');
const CartClass = require('../modules/Cart')
const Cart = require('../models/cart');
const OrdersCart = require('../models/orderscart');
//GET orders
router.get('/:userId', authenticate, function (req, res, next) {
let userId = req.body.userId;
let idapp = req.body.idapp;
OrdersCart.getOrdersCartByUserId(userId, idapp, 0, false)
.then((cart) => {
if (cart)
res.send({ code: server_constants.RIS_CODE_OK, cart });
else
res.status(400).send(e);
})
});
router.post('/updateord', authenticate, async (req, res) => {
const idOrdersCart = req.body.idOrdersCart;
const idOrder = req.body.idOrder;
const paramstoupdate = req.body.paramstoupdate;
try {
// Aggiorno l'Ordine Singolo
await Order.updateOrderByParams(idOrder, paramstoupdate);
// Aggiorno il Totale degli Ordini (OrdersCart)
await OrdersCart.updateOrdersCartTotals(idOrdersCart, true)
.then((orderscart) => {
return res.send({ code: server_constants.RIS_CODE_OK, orderscart });
}).catch(err => {
console.log('ERR:', err);
res.status(400).send();
});
} catch (e) {
console.error('Err', e);
}
});
router.post('/update', authenticate, async (req, res) => {
let orderscart = null;
const idOrdersCart = req.body.idOrdersCart;
const paramstoupdate = req.body.paramstoupdate;
try {
// Aggiorno Orderscart con i parametri passati
orderscart = await OrdersCart.updateOrdersCartByParams(idOrdersCart, paramstoupdate);
let updatetotals = true;
if (paramstoupdate && paramstoupdate.hasOwnProperty('totalPrice')) {
updatetotals = false;
}
if (updatetotals) {
// Aggiorno il Totale degli Ordini (OrdersCart)
await OrdersCart.updateOrdersCartTotals(idOrdersCart, true)
.then((orderscart) => {
return res.send({ code: server_constants.RIS_CODE_OK, orderscart });
}).catch(err => {
console.log('ERR:', err);
res.status(400).send();
});
} else {
return res.send({ code: server_constants.RIS_CODE_OK, orderscart });
}
} catch (e) {
console.error('Err', e);
}
});
router.post('/sendmail', authenticate, async function (req, res, next) {
const idOrdersCart = req.body.idOrdersCart;
const idapp = req.body.idapp;
const test = req.body.test;
const previewonly = req.body.previewonly;
const templemail_id = req.body.templemail_id;
try {
// Invia Email
let myOrderCart = await OrdersCart.getOrdersCartById(idOrdersCart);
if (myOrderCart) {
const userto = myOrderCart.user;
let emailto = userto.email;
if (userto && emailto) {
const emailsend = await sendemail.sendEmail_byTemplate(idapp, userto, previewonly, emailto, templemail_id, test);
return res.send({ code: server_constants.RIS_CODE_OK, emailsend });
}
}
return res.send({ code: server_constants.RIS_CODE_OK, emailsend: false });
} catch (e) {
console.error('err:', e);
res.status(400).send(e);
}
});
module.exports = router;