From 3c6bf474022577ca43be7d30a6b1cc8f47c198c4 Mon Sep 17 00:00:00 2001 From: Rumperuu Date: Thu, 27 Oct 2022 16:32:08 +0000 Subject: [PATCH] Add logging --- routes/web.php | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/routes/web.php b/routes/web.php index 8804b35..1ca943a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use GuzzleHttp\Client; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Storage; @@ -14,27 +15,36 @@ Route::get('/{tripId?}', function (Request $request, $tripId = null) { $viewMode = $request->input('show', null); - /* - * If there is a file in the local cache that is less than 1–3 hours old - * (depending on whether it was actively tracking at last check), use that. - */ + // If there is a file in the local cache that is less than 1–3 hours old + // (depending on whether it was actively tracking at last check), use that. $tripFileName = ( $tripId ?? config('app.current_trip_id') ) . '.json'; + if (Storage::disk('local')->exists($tripFileName)) { - $cachedData = json_decode(Storage::disk('local')->get($tripFileName)); - if ($cachedData->trip->is_active) { - $cachedDataUpdatedAt = new DateTime($cachedData->trip->updated_at); + Log::debug("Cached trip file '{$tripFileName}' found..."); + $cachedData = json_decode(Storage::disk('local')->get($tripFileName))->trip; + + if ($cachedData->is_active) { + Log::debug("Cached trip file '{$tripFileName}' is for an active trip."); + + $cachedDataUpdatedAt = new DateTime($cachedData->updated_at); $now = new DateTime(); - if (intval(($now->getTimestamp() - $cachedDataUpdatedAt->getTimestamp()) / 3600) <= (($cachedData->trip->is_tracking) ? 1 : 3)) { - return view('tracker', ['trip' => $cachedData->trip, 'showAllCheckins' => ($viewMode === 'all')]); + $cachingTimeout = ($cachedData->is_tracking) ? 1 : 3; + $cachedDataAge = intval(($now->getTimestamp() - $cachedDataUpdatedAt->getTimestamp()) / 3600); + + if ($cachedDataAge <= $cachingTimeout) { + Log::debug("Cached trip file '{$tripFileName}' is younger than {$cachingTimeout} hours, showing from cache..."); + return view('tracker', ['trip' => $cachedData, 'showAllCheckins' => ($viewMode === 'all')]); } } else { - return view('tracker', ['trip' => $cachedData->trip, 'showAllCheckins' => ($viewMode === 'all')]); + Log::debug("Cached trip file '{$tripFileName}' is for an old trip, showing from cache..."); + return view('tracker', ['trip' => $cachedData, 'showAllCheckins' => ($viewMode === 'all')]); } } /* * Otherwise, download the latest tracking data. */ + Log::debug("No cached trip file found for '{$tripFileName}'."); $client = new Client([ 'base_uri' => 'https://app.wayward.travel/', 'timeout' => 3.0 @@ -46,19 +56,23 @@ Route::get('/{tripId?}', function (Request $request, $tripId = null) { // Cache the downloaded file if it does not exist locally. if (Storage::disk('local')->missing($tripFileName)) { + Log::debug("Caching new trip file '{$tripFileName}'."); Storage::disk('local')->put($tripFileName, json_encode($data)); } else { $cachedData = json_decode(Storage::disk('local')->get($tripFileName)); if ($data->trip->updated_at !== $cachedData->trip->updated_at) { + Log::debug("Cached trip file '{$tripFileName}' has different 'updated_at' time, updating cache..."); Storage::disk('local')->put($tripFileName, json_encode($data)); // TODO: Cache photos locally } else { + Log::debug("Cached trip file '{$tripFileName}' has same 'updated_at' time, showing from cache..."); $data = $cachedData; } } return view('tracker', ['trip' => $data->trip, 'showAllCheckins' => ($viewMode === 'all')]); } else { + // TODO: Return proper error return 'Something went wrong'; } })->where('tripId', '[0-9a-z]{20}');