389 API Changes (#393)
* Update PHPUnit to 8 * Fix API endpoints closes #389 * Update pagination method in Repository contract to look at the page number closes #390 * Remove unused imports * Fix tests in FlightTests * Typecast page * Don't register factories * Remove Factory loading * Remove unused imports
This commit is contained in:
@@ -108,4 +108,32 @@ abstract class Repository extends \Prettus\Repository\Eloquent\BaseRepository
|
||||
return $q;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all data of repository, paginated. Added in extra parameter to read from the
|
||||
* request which page it should be on
|
||||
*
|
||||
* @param null $limit
|
||||
* @param array $columns
|
||||
* @param string $method
|
||||
*
|
||||
* @throws \Prettus\Repository\Exceptions\RepositoryException
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function paginate($limit = null, $columns = ['*'], $method = 'paginate')
|
||||
{
|
||||
$this->applyCriteria();
|
||||
$this->applyScope();
|
||||
|
||||
$max = config('repository.pagination.limit', 50);
|
||||
$limit = (int) ($limit ?? request()->query('limit') ?? $max);
|
||||
$page = (int) request()->query('page', 1);
|
||||
|
||||
$results = $this->model->{$method}($limit, $columns, 'page', $page);
|
||||
$results->appends(app('request')->query());
|
||||
$this->resetModel();
|
||||
|
||||
return $this->parserResult($results);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ use App\Http\Requests\Acars\EventRequest;
|
||||
use App\Http\Requests\Acars\LogRequest;
|
||||
use App\Http\Requests\Acars\PositionRequest;
|
||||
use App\Http\Resources\AcarsRoute as AcarsRouteResource;
|
||||
use App\Http\Resources\Pirep as PirepResource;
|
||||
use App\Models\Acars;
|
||||
use App\Models\Enums\AcarsType;
|
||||
use App\Models\Enums\PirepStatus;
|
||||
@@ -21,9 +22,6 @@ use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
* Class AcarsController
|
||||
*/
|
||||
class AcarsController extends Controller
|
||||
{
|
||||
private $acarsRepo;
|
||||
@@ -61,6 +59,20 @@ class AcarsController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the active PIREPs
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function live_flights()
|
||||
{
|
||||
$pireps = $this->acarsRepo->getPositions(setting('acars.live_time'))->filter(function ($pirep) {
|
||||
return $pirep->position !== null;
|
||||
});
|
||||
|
||||
return PirepResource::collection($pireps);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all of the flights (as points) in GeoJSON format
|
||||
*
|
||||
@@ -68,7 +80,7 @@ class AcarsController extends Controller
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function index(Request $request)
|
||||
public function pireps_geojson(Request $request)
|
||||
{
|
||||
$pireps = $this->acarsRepo->getPositions(setting('acars.live_time'));
|
||||
$positions = $this->geoSvc->getFeatureForLiveFlights($pireps);
|
||||
|
||||
@@ -7,9 +7,6 @@ use App\Http\Resources\Airline as AirlineResource;
|
||||
use App\Repositories\AirlineRepository;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* Class AirlineController
|
||||
*/
|
||||
class AirlineController extends Controller
|
||||
{
|
||||
private $airlineRepo;
|
||||
@@ -34,7 +31,6 @@ class AirlineController extends Controller
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
//$this->airlineRepo->pushCriteria(new RequestCriteria($request));
|
||||
$airports = $this->airlineRepo
|
||||
->whereOrder(['active' => true], 'name', 'asc')
|
||||
->paginate();
|
||||
|
||||
@@ -33,10 +33,10 @@ use App\Services\FareService;
|
||||
use App\Services\Finance\PirepFinanceService;
|
||||
use App\Services\PirepService;
|
||||
use App\Services\UserService;
|
||||
use Auth;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Log;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
* Class PirepController
|
||||
@@ -52,8 +52,6 @@ class PirepController extends Controller
|
||||
private $userSvc;
|
||||
|
||||
/**
|
||||
* PirepController constructor.
|
||||
*
|
||||
* @param AcarsRepository $acarsRepo
|
||||
* @param FareService $fareSvc
|
||||
* @param PirepFinanceService $financeSvc
|
||||
@@ -159,22 +157,6 @@ class PirepController extends Controller
|
||||
$this->fareSvc->saveForPirep($pirep, $fares);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the active PIREPs
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$pireps = $this->acarsRepo
|
||||
->getPositions(setting('acars.live_time'))
|
||||
->filter(function ($pirep) {
|
||||
return $pirep->position !== null;
|
||||
});
|
||||
|
||||
return PirepResource::collection($pireps);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $pirep_id
|
||||
*
|
||||
|
||||
@@ -4,8 +4,9 @@
|
||||
* Public routes
|
||||
*/
|
||||
Route::group([], function () {
|
||||
Route::get('acars', 'AcarsController@index');
|
||||
Route::get('pireps', 'PirepController@index');
|
||||
Route::get('acars', 'AcarsController@live_flights');
|
||||
Route::get('acars/geojson', 'AcarsController@pireps_geojson');
|
||||
|
||||
Route::get('pireps/{pirep_id}', 'PirepController@get');
|
||||
Route::get('pireps/{pirep_id}/acars/geojson', 'AcarsController@acars_geojson');
|
||||
|
||||
@@ -15,7 +16,7 @@ Route::group([], function () {
|
||||
});
|
||||
|
||||
/*
|
||||
* these need to be authenticated with a user's API key
|
||||
* These need to be authenticated with a user's API key
|
||||
*/
|
||||
Route::group(['middleware' => ['api.auth']], function () {
|
||||
Route::get('airlines', 'AirlineController@index');
|
||||
@@ -35,6 +36,7 @@ Route::group(['middleware' => ['api.auth']], function () {
|
||||
Route::get('flights/{id}', 'FlightController@get');
|
||||
Route::get('flights/{id}/route', 'FlightController@route');
|
||||
|
||||
Route::get('pireps', 'UserController@pireps');
|
||||
Route::put('pireps/{pirep_id}', 'PirepController@update');
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user