Fixed settings saving schema validation
parent
f14d0bf7dd
commit
3730f84796
|
@ -209,9 +209,29 @@ exports.updateConfig = (fields) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!fields['menuEnabled']){
|
if(!fields['menuEnabled']){
|
||||||
settingsFile['menuEnabled'] = 'false';
|
settingsFile['menuEnabled'] = false;
|
||||||
}else{
|
}else{
|
||||||
settingsFile['menuEnabled'] = 'true';
|
settingsFile['menuEnabled'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(fields['emailPort']){
|
||||||
|
settingsFile['emailPort'] = parseInt(fields['emailPort']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(fields['flatShipping']){
|
||||||
|
settingsFile['flatShipping'] = parseInt(fields['flatShipping']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(fields['freeShippingAmount']){
|
||||||
|
settingsFile['freeShippingAmount'] = parseInt(fields['freeShippingAmount']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(fields['productsPerRow']){
|
||||||
|
settingsFile['productsPerRow'] = parseInt(fields['productsPerRow']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(fields['productsPerPage']){
|
||||||
|
settingsFile['productsPerPage'] = parseInt(fields['productsPerPage']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// write file
|
// write file
|
||||||
|
@ -401,7 +421,7 @@ exports.dbQuery = (db, query, sort, limit, callback) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.getData = async (req, page, query) => {
|
exports.getData = (req, page, query) => {
|
||||||
let db = req.app.db;
|
let db = req.app.db;
|
||||||
let config = exports.getConfig();
|
let config = exports.getConfig();
|
||||||
let numberProducts = config.productsPerPage ? config.productsPerPage : 6;
|
let numberProducts = config.productsPerPage ? config.productsPerPage : 6;
|
||||||
|
@ -430,7 +450,7 @@ exports.getData = async (req, page, query) => {
|
||||||
exports.indexProducts = (app) => {
|
exports.indexProducts = (app) => {
|
||||||
// index all products in lunr on startup
|
// index all products in lunr on startup
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
exports.dbQuery(app.db.products, {}, null, null, (err, productsList) => {
|
app.db.products.find({}).toArray((err, productsList) => {
|
||||||
if(err){
|
if(err){
|
||||||
console.error(colors.red(err.stack));
|
console.error(colors.red(err.stack));
|
||||||
reject(err);
|
reject(err);
|
||||||
|
@ -463,10 +483,46 @@ exports.indexProducts = (app) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.indexCustomers = (app) => {
|
||||||
|
// index all products in lunr on startup
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
app.db.customers.find({}).toArray((err, customerList) => {
|
||||||
|
if(err){
|
||||||
|
console.error(colors.red(err.stack));
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
// setup lunr indexing
|
||||||
|
const customersIndex = lunr(function(){
|
||||||
|
this.field('email', {boost: 10});
|
||||||
|
this.field('name', {boost: 5});
|
||||||
|
this.field('phone');
|
||||||
|
|
||||||
|
const lunrIndex = this;
|
||||||
|
|
||||||
|
// add to lunr index
|
||||||
|
customerList.forEach((customer) => {
|
||||||
|
let doc = {
|
||||||
|
'email': customer.email,
|
||||||
|
'name': `${customer.firstName} ${customer.lastName}`,
|
||||||
|
'phone': customer.phone,
|
||||||
|
'id': customer._id
|
||||||
|
};
|
||||||
|
lunrIndex.add(doc);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
app.customersIndex = customersIndex;
|
||||||
|
console.log(colors.cyan('- Customer indexing complete'));
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
exports.indexOrders = (app, cb) => {
|
exports.indexOrders = (app, cb) => {
|
||||||
// index all orders in lunr on startup
|
// index all orders in lunr on startup
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
exports.dbQuery(app.db.orders, {}, null, null, (err, ordersList) => {
|
app.db.orders.find({}).toArray((err, ordersList) => {
|
||||||
if(err){
|
if(err){
|
||||||
console.error(colors.red('Error setting up products index: ' + err));
|
console.error(colors.red('Error setting up products index: ' + err));
|
||||||
reject(err);
|
reject(err);
|
||||||
|
@ -505,7 +561,8 @@ exports.runIndexing = (app) => {
|
||||||
|
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
exports.indexProducts(app),
|
exports.indexProducts(app),
|
||||||
exports.indexOrders(app)
|
exports.indexOrders(app),
|
||||||
|
exports.indexCustomers(app)
|
||||||
])
|
])
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
process.exit(2);
|
process.exit(2);
|
||||||
|
|
Loading…
Reference in New Issue