Add caching to tracking results

master
Skylar Ittner 3 years ago
parent f4ce64a6e8
commit bacbaf7cac

@ -2,17 +2,32 @@
$trackinginfo; $trackinginfo;
$code = $VARS["code"];
$carrier = "";
if (!empty($VARS["carrier"])) {
$carrier = $VARS["carrier"];
}
try { try {
if (!empty($VARS["carrier"])) { $cacheresp = $memcache->get("logistics.tracking.$code.$carrier");
$trackinginfo = Tracking::track($VARS["code"], $VARS["carrier"]); if ($cacheresp !== false && empty($VARS["nocache"])) {
} else { exitWithJson(json_decode($cacheresp, true));
$trackinginfo = Tracking::track($VARS["code"]);
} }
$trackinginfo = Tracking::track($code, $carrier);
} catch (TrackingException $ex) { } catch (TrackingException $ex) {
sendJsonResp($ex->getMessage(), "ERROR"); $output = [
"status" => "ERROR",
"msg" => $ex->getMessage()
];
$memcache->set("logistics.tracking.$code.$carrier", json_encode($output), 60 * 10);
exitWithJson($output);
} }
if (is_null($trackinginfo)) { if (is_null($trackinginfo)) {
sendJsonResp("Could not find any results for that tracking code.", "ERROR"); sendJsonResp("Could not find any results for that tracking code.", "ERROR");
} }
exitWithJson($trackinginfo->toObject());
$output = $trackinginfo->toObject();
$memcache->set("logistics.tracking.$code.$carrier", json_encode($output), 60 * 60);
exitWithJson($output);

Loading…
Cancel
Save