added base examples and drills

This commit is contained in:
2026-05-20 17:42:01 -06:00
parent 9bf788d9ef
commit 4fc0d851e7
40 changed files with 802 additions and 1 deletions
+3
View File
@@ -0,0 +1,3 @@
# shipping original
Messy shipping logic mixing eligibility, cost calculation, randomness, time, logging, and file I/O.
+37
View File
@@ -0,0 +1,37 @@
const fs = require("fs");
function shipOrder(filePath, orderId, destinationCountry) {
const raw = fs.readFileSync(filePath, "utf8");
const state = JSON.parse(raw);
const order = state.orders.find((item) => item.id === orderId);
if (!order) {
throw new Error("Order not found");
}
if (order.status === "shipped") {
return { message: "Already shipped", trackingNumber: order.trackingNumber };
}
let shippingCost = 5;
if (destinationCountry !== "US") {
shippingCost = shippingCost + 15;
}
if (order.weightKg > 10) {
shippingCost = shippingCost + 20;
}
order.status = "shipped";
order.shippingCost = shippingCost;
order.trackingNumber = "trk-" + Math.floor(Math.random() * 100000);
order.shippedAt = new Date().toISOString();
fs.writeFileSync(filePath, JSON.stringify(state, null, 2));
console.log("Order shipped", orderId);
return { message: "Shipped", trackingNumber: order.trackingNumber, shippingCost };
}
module.exports = { shipOrder };
+12
View File
@@ -0,0 +1,12 @@
{
"orders": [
{
"id": "ord-1",
"status": "paid",
"weightKg": 12,
"shippingCost": 0,
"trackingNumber": null,
"shippedAt": null
}
]
}