Skip to content

Commit

Permalink
No print raw error on calculate order delivery
Browse files Browse the repository at this point in the history
  • Loading branch information
Xziy committed Aug 21, 2024
1 parent 67e1949 commit f4eb884
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 11 deletions.
21 changes: 12 additions & 9 deletions models/Order.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const uuid_1 = require("uuid");
const decimal_js_1 = __importDefault(require("decimal.js"));
const phoneValidByMask_1 = require("../libs/phoneValidByMask");
const OrderHelper_1 = require("../libs/helpers/OrderHelper");
const isValue_1 = require("../utils/isValue");
let attributes = {
/** Id */
id: {
Expand Down Expand Up @@ -1324,7 +1325,7 @@ let Model = {
allowed: false,
cost: 0,
item: undefined,
message: error,
message: `Calcualte delivery adapter error`,
deliveryTimeMinutes: Infinity
};
}
Expand Down Expand Up @@ -1597,29 +1598,31 @@ async function getOrderDateLimit() {
}
function isValidDelivery(delivery) {
// Check if the required properties exist and have the correct types
// {"deliveryTimeMinutes":180,"allowed":true,"message":"","item":"de78c552-71e6-5296-ae07-a5114d4e88bc"}
if (typeof delivery.deliveryTimeMinutes === 'number' &&
typeof delivery.allowed === 'boolean' &&
typeof delivery.message === 'string') {
if (!delivery.cost && !delivery.item) {
sails.log.error(`Check delivery error delivery is not valid: (delivery.cost and delivery.item not defined) :`, delivery);
// Check if both delivery.cost and delivery.item are not provided
if (!(0, isValue_1.isValue)(delivery.cost) && !(0, isValue_1.isValue)(delivery.item)) {
sails.log.error(`Check delivery error: delivery is not valid (delivery.cost and delivery.item not defined)`, delivery);
sails.log.error(console.trace());
return false;
}
else {
if (delivery.cost && typeof delivery.cost !== "number") {
sails.log.error(`Check delivery error delivery is not valid: delivery.cost not number`);
// Check if delivery.cost is either undefined, null, or a number (including 0)
if ((0, isValue_1.isValue)(delivery.cost) && typeof delivery.cost !== 'number') {
sails.log.error(`Check delivery error: delivery is not valid (delivery.cost is not a number)`);
sails.log.error(console.trace());
return false;
}
if (delivery.item && typeof delivery.item !== "string") {
sails.log.error(`Check delivery error delivery is not valid: delivery.item not string`);
// Check if delivery.item is either undefined, null, or a string
if ((0, isValue_1.isValue)(delivery.item) && typeof delivery.item !== 'string') {
sails.log.error(`Check delivery error: delivery is not valid (delivery.item is not a string)`);
sails.log.error(console.trace());
return false;
}
}
return true;
}
sails.log.error(`Check delivery error delivery is not valid: ${JSON.stringify(delivery)}`);
sails.log.error(`Check delivery error: delivery is not valid`, delivery);
return false;
}
2 changes: 1 addition & 1 deletion models/Order.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1590,7 +1590,7 @@ let Model = {
allowed: false,
cost: 0,
item: undefined,
message: error,
message: `Calcualte delivery adapter error`,
deliveryTimeMinutes: Infinity
}
}
Expand Down
2 changes: 1 addition & 1 deletion models/Settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ let Model = {
try {
value = JSON.parse(process.env[key]);
// if value was parsed, check that given json matches the schema (if !ALLOW_UNSAFE_SETTINGS)
if (!(await Settings.get("ALLOW_UNSAFE_SETTINGS"))) {
if (!(await Settings.get("ALLOW_UNSAFE_SETTINGS") ?? false)) {
const ajv = new ajv_1.default();
const validate = ajv.compile(setting.jsonSchema);
if (!validate(value)) {
Expand Down
1 change: 1 addition & 0 deletions utils/isValue.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export declare function isValue<T>(value: T): boolean;
26 changes: 26 additions & 0 deletions utils/isValue.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValue = isValue;
function isValue(value) {
// Check for undefined and null
if (value === undefined || value === null) {
return false;
}
// Check for NaN (only if the value is of type number)
if (typeof value === 'number' && Number.isNaN(value)) {
return false;
}
// Check for empty strings
if (typeof value === 'string' && value.trim() === '') {
return false;
}
// Check for empty arrays
if (Array.isArray(value) && value.length === 0) {
return false;
}
// Check for empty objects
if (typeof value === 'object' && Object.keys(value).length === 0) {
return false;
}
return true;
}

0 comments on commit f4eb884

Please sign in to comment.