在这段生成的订单规范化函数处理 API 输入前,对它进行审查。
要求 quantity 为正整数,保留零折扣,只公开客户 id 与 name,不修改输入,并在允许列表很大时高效保留获准商品 SKU。
JavaScript
function prepareOrder(input, allowedSkus) {
const quantity = Number(input.quantity);
const { cardNumber, ...publicCustomer } = input.customer;
const order = {
id: String(input.id),
quantity,
discountPercent: input.discountPercent || 10,
customer: publicCustomer,
items: input.items.filter((item) => allowedSkus.includes(item.sku)),
};
order.customer.preferences.theme ??= 'system';
if (quantity < 0) {
throw new RangeError('quantity must be positive');
}
return order;
}
生成代码仅作示例,不代表任何特定模型