From ddf235a61bf84992015788ed78e4bcc4967f30e9 Mon Sep 17 00:00:00 2001 From: Rumperuu Date: Wed, 30 Nov 2022 12:47:09 -0600 Subject: [PATCH] Add PHP_CodeSniffer, lint code --- app/Console/Commands/SendDigest.php | 8 +- app/Console/Kernel.php | 12 +-- app/Http/Controllers/TrackerController.php | 91 ++++++++++++++-------- app/Mail/Digest.php | 34 ++++---- app/helper.php | 23 ++++-- composer.json | 3 +- composer.lock | 60 +++++++++++++- phpcs.xml | 25 ++++++ 8 files changed, 188 insertions(+), 68 deletions(-) create mode 100644 phpcs.xml diff --git a/app/Console/Commands/SendDigest.php b/app/Console/Commands/SendDigest.php index 1c443c3..c0311ab 100644 --- a/app/Console/Commands/SendDigest.php +++ b/app/Console/Commands/SendDigest.php @@ -29,8 +29,12 @@ class SendDigest extends Command * @return int */ public function handle() - { - if (!$this->option('daily') && !$this->option('weekly') && !$this->option('fortnightly') && !$this->option('monthly')) { + { + if (!$this->option('daily') && + !$this->option('weekly') && + !$this->option('fortnightly') && + !$this->option('monthly') + ) { $this->error('No schedule specified.'); return; } diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 84ecb8e..9e0881a 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -18,26 +18,28 @@ class Kernel extends ConsoleKernel { $schedule->command('digest:send --daily') ->daily() - ->onFailure(function() { + ->onFailure(function () { Log::error("Daily email digest send failed"); }); $schedule->command('digest:send --weekly') ->weekly() - ->onFailure(function() { + ->onFailure(function () { Log::error("Weekly email digest send failed"); }); $schedule->command('digest:send --fortnightly') ->weeklyOn(5, '00:01') - ->when(function() { return (time() / 604800 % 2); }) - ->onFailure(function() { + ->when(function () { + return (time() / 604800 % 2); + }) + ->onFailure(function () { Log::error("Fortnightly email digest send failed"); }); $schedule->command('digest:send --monthly') ->monthly() - ->onFailure(function() { + ->onFailure(function () { Log::error("Monthly email digest send failed"); }); } diff --git a/app/Http/Controllers/TrackerController.php b/app/Http/Controllers/TrackerController.php index c28e552..2813778 100644 --- a/app/Http/Controllers/TrackerController.php +++ b/app/Http/Controllers/TrackerController.php @@ -18,7 +18,8 @@ class TrackerController extends Controller * * @return \Illuminate\View\View */ - public function show_past_trips_list() { + public function show_past_trips_list() + { return view('past-trips'); } @@ -29,9 +30,12 @@ class TrackerController extends Controller * @param string? $tripId * @return \Illuminate\View\View */ - public function show_trip(Request $request, string $tripId = null) { + public function show_trip(Request $request, string $tripId = null) + { $tripId = $tripId ?? config('app.current_trip_id'); - if (!$tripId) return view('no-trip'); + if (!$tripId) { + return view('no-trip'); + } $viewMode = $request->input('show', null); $fromCheckin = $request->input('from', null); @@ -42,28 +46,28 @@ class TrackerController extends Controller if ($fromCheckin) { $tripData->checkins = array_filter( - $tripData->checkins, - function($key) use ($fromCheckin) { - return $key >= $fromCheckin; - }, + $tripData->checkins, + function ($key) use ($fromCheckin) { + return $key >= $fromCheckin; + }, ARRAY_FILTER_USE_KEY ); } if ($toCheckin) { $tripData->checkins = array_filter( - $tripData->checkins, - function($key) use ($toCheckin) { - return $key <= $toCheckin; - }, + $tripData->checkins, + function ($key) use ($toCheckin) { + return $key <= $toCheckin; + }, ARRAY_FILTER_USE_KEY ); } return view( - 'tracker', + 'tracker', [ - 'trip' => $tripData, + 'trip' => $tripData, 'showAllCheckins' => ($viewMode === 'all'), 'fromCheckin' => $fromCheckin, 'toCheckin' => $toCheckin @@ -80,8 +84,8 @@ class TrackerController extends Controller * 1. If the trip is inactive (i.e., finished), use the cache * 2. If the trip is active: * 1. If the trip was actively tracking at last check, use the - * cache if it's less than an hour old. Otherwise, download - * the new trip data. + * cache if it's less than an hour old. Otherwise, download + * the new trip data. * 2. If the trip was not actively tracking at lest check, use * the cache if it's less than three hours old. Otherwise, * download the new trip data. @@ -91,7 +95,8 @@ class TrackerController extends Controller * @param bool $forceDownload * @return string */ - public function get_trip_data(string $tripId, bool $forceDownload = false) { + public function get_trip_data(string $tripId, bool $forceDownload = false) + { $tripFileName = ( $tripId ?? config('app.current_trip_id') ) . '.json'; // Returns the cached trip data if the trip is inactive (i.e., finished) @@ -110,11 +115,21 @@ class TrackerController extends Controller $cachedDataAge = intval(($now->getTimestamp() - $cachedDataUpdatedAt->getTimestamp()) / 3600); if ($cachedDataAge <= $cachingTimeout) { - Log::debug("Cached trip file '{$tripFileName}' is younger than {$cachingTimeout} hours, showing from cache..."); + Log::debug( + "Cached trip file '" . + $tripFileName . + "' is younger than " . + $cachingTimeout . + " hours, showing from cache..." + ); return $cachedData; } } else { - Log::debug("Cached trip file '{$tripFileName}' is for an old trip, showing from cache..."); + Log::debug( + "Cached trip file '" . + $tripFileName . + "' is for an old trip, showing from cache..." + ); return $cachedData; } } @@ -133,29 +148,37 @@ class TrackerController extends Controller $response = $client->get('trip/'.($tripId ?? config('app.current_trip_id')).'/user/zmld8ko6qy7d9j3xvq10/json'); switch ($response->getStatusCode()) { - case 200: - $data = json_decode($response->getBody()); + case 200: + $data = json_decode($response->getBody()); // 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..."); + Log::debug("Caching new trip file '{$tripFileName}'."); 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; + $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 $data->trip; - default: - // TODO: Add proper error handling. - return "Something went wrong"; + return $data->trip; + default: + // TODO: Add proper error handling. + return "Something went wrong"; } } } diff --git a/app/Mail/Digest.php b/app/Mail/Digest.php index ccf0ba3..9ba0a5c 100644 --- a/app/Mail/Digest.php +++ b/app/Mail/Digest.php @@ -49,32 +49,32 @@ class Digest extends Mailable $cutoffDateTime = new DateTime(); switch ($this->digest_type) { - case 'daily': - $cutoffDateTime->modify('-1 day'); - break; - case 'weekly': - $cutoffDateTime->modify('-1 week'); - break; - case 'fortnightly': - $cutoffDateTime->modify('-2 weeks'); - break; - case 'monthly': - $cutoffDateTime->modify('-1 month'); - break; - default: + case 'daily': + $cutoffDateTime->modify('-1 day'); + break; + case 'weekly': + $cutoffDateTime->modify('-1 week'); + break; + case 'fortnightly': + $cutoffDateTime->modify('-2 weeks'); + break; + case 'monthly': + $cutoffDateTime->modify('-1 month'); + break; + default: } $this->locations = array_filter( - $trip->locations, - function($elem) use ($cutoffDateTime) { + $trip->locations, + function ($elem) use ($cutoffDateTime) { $elemDateTime = new DateTime($elem->created_at); return $elemDateTime > $cutoffDateTime; } ); $this->checkinsList = array_filter( - $trip->checkinsList, - function($elem) use ($cutoffDateTime) { + $trip->checkinsList, + function ($elem) use ($cutoffDateTime) { $elemDateTime = new DateTime($elem->created_at); return $elemDateTime > $cutoffDateTime; } diff --git a/app/helper.php b/app/helper.php index dbb6013..70db4a4 100644 --- a/app/helper.php +++ b/app/helper.php @@ -1,6 +1,7 @@ 1 ) ? 's' : '' ) . " ago{$end_tag}"; + return $start_tag . + ( floor($trip_start_difference / $div) ) . + " {$unit}" . + ( + ( floor($trip_start_difference / $div) > 1 ) ? + 's' : + '' + ) . + " ago{$end_tag}"; } } diff --git a/composer.json b/composer.json index 84f650f..a55447c 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,8 @@ "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^6.1", "phpunit/phpunit": "^9.5.10", - "spatie/laravel-ignition": "^1.0" + "spatie/laravel-ignition": "^1.0", + "squizlabs/php_codesniffer": "*" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index af33c6e..191b5f4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "44109efc12ef74a29f8aa0c4886fb3d2", + "content-hash": "b695d8f60fd5d1e54c8956dd9f120320", "packages": [ { "name": "brick/math", @@ -8239,6 +8239,62 @@ ], "time": "2022-10-26T17:39:54+00:00" }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2022-06-18T07:21:10+00:00" + }, { "name": "theseer/tokenizer", "version": "1.2.1", @@ -8299,5 +8355,5 @@ "php": "^8.0.2" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" } diff --git a/phpcs.xml b/phpcs.xml new file mode 100644 index 0000000..84b5f53 --- /dev/null +++ b/phpcs.xml @@ -0,0 +1,25 @@ + + + The coding standard for our project. + + + + + app + bootstrap + config + database + resources + routes + tests + + bootstrap/cache/* + bootstrap/autoload.php + */migrations/* + */seeds/* + *.blade.php + *.js + + + +