From 7fce5421b42f2e61be8b166c261181a96fe54c86 Mon Sep 17 00:00:00 2001 From: Nabeel Shahzad Date: Sat, 11 May 2019 11:37:06 -0500 Subject: [PATCH] Reset the criterea before a new search --- app/Database/factories/FlightFactory.php | 2 +- app/Http/Controllers/Api/FlightController.php | 6 +++++- app/Http/Controllers/Frontend/FlightController.php | 2 ++ app/Repositories/FlightRepository.php | 2 +- app/helpers.php | 7 +++++-- tests/FlightTest.php | 3 ++- 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/Database/factories/FlightFactory.php b/app/Database/factories/FlightFactory.php index 248427cf..412c30df 100644 --- a/app/Database/factories/FlightFactory.php +++ b/app/Database/factories/FlightFactory.php @@ -35,7 +35,7 @@ $factory->define(App\Models\Flight::class, function (Faker $faker) { 'start_date' => null, 'end_date' => null, 'created_at' => $faker->dateTimeBetween('-1 week', 'now'), - 'updated_at' => function (array $flight) { + 'updated_at' => static function (array $flight) { return $flight['created_at']; }, ]; diff --git a/app/Http/Controllers/Api/FlightController.php b/app/Http/Controllers/Api/FlightController.php index 7d474f58..2ddde8c4 100644 --- a/app/Http/Controllers/Api/FlightController.php +++ b/app/Http/Controllers/Api/FlightController.php @@ -9,6 +9,7 @@ use App\Repositories\Criteria\WhereCriteria; use App\Repositories\FlightRepository; use App\Services\FlightService; use Auth; +use DB; use Illuminate\Http\Request; use Prettus\Repository\Criteria\RequestCriteria; use Prettus\Repository\Exceptions\RepositoryException; @@ -95,7 +96,9 @@ class FlightController extends Controller ]; // Allow the option to bypass some of these restrictions for the searches - if (!$request->filled('ignore_restrictions') || $request->ignore_restrictions === '0') { + if (!$request->filled('ignore_restrictions') + || $request->get('ignore_restrictions') === '0' + ) { if (setting('pilots.restrict_to_company')) { $where['airline_id'] = Auth::user()->airline_id; } @@ -106,6 +109,7 @@ class FlightController extends Controller } try { + $this->flightRepo->resetCriteria(); $this->flightRepo->searchCriteria($request); $this->flightRepo->pushCriteria(new WhereCriteria($request, $where)); $this->flightRepo->pushCriteria(new RequestCriteria($request)); diff --git a/app/Http/Controllers/Frontend/FlightController.php b/app/Http/Controllers/Frontend/FlightController.php index 30ded3ac..bb06e139 100644 --- a/app/Http/Controllers/Frontend/FlightController.php +++ b/app/Http/Controllers/Frontend/FlightController.php @@ -139,6 +139,8 @@ class FlightController extends Controller $where['dpt_airport_id'] = Auth::user()->curr_airport_id; } + $this->flightRepo->resetCriteria(); + try { $this->flightRepo->pushCriteria(new WhereCriteria($request, $where)); } catch (RepositoryException $e) { diff --git a/app/Repositories/FlightRepository.php b/app/Repositories/FlightRepository.php index 9d6b2322..4850f4aa 100644 --- a/app/Repositories/FlightRepository.php +++ b/app/Repositories/FlightRepository.php @@ -111,7 +111,7 @@ class FlightRepository extends Repository implements CacheableInterface // Distance, less than if ($request->filled('dlt')) { - $where[] = ['distance', '<', $request->dlt]; + $where[] = ['distance', '<=', $request->dlt]; } $this->pushCriteria(new WhereCriteria($request, $where)); diff --git a/app/helpers.php b/app/helpers.php index c1e5e11b..78d2788f 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -1,5 +1,8 @@ retrieve($key); - } catch (\App\Exceptions\SettingNotFound $e) { + } catch (SettingNotFound $e) { return $default; } diff --git a/tests/FlightTest.php b/tests/FlightTest.php index f07bbb17..d11a1d84 100644 --- a/tests/FlightTest.php +++ b/tests/FlightTest.php @@ -357,7 +357,7 @@ class FlightTest extends TestCase $flight->distance = 1500; $flight->save(); - $distance_gt = 1000; + $distance_gt = 1100; $distance_lt = 1600; // look for all of the flights now less than the "factory default" of 1000 @@ -370,6 +370,7 @@ class FlightTest extends TestCase $query = 'dgt='.$distance_gt.'&ignore_restrictions=1'; $req = $this->get('/api/flights/search?'.$query); $body = $req->json(); + $this->assertCount(1, $body['data']); $this->assertEquals($flight->id, $body['data'][0]['id']);