#406 Refactor bids (#432)

* Add flight_id column to pireps table

* Refactor PIREPs and bids closes 406

* Formatting
This commit is contained in:
Nabeel S
2019-11-05 11:44:31 -05:00
committed by GitHub
parent db087d0ccb
commit f5183babf6
35 changed files with 967 additions and 798 deletions

View File

@@ -8,8 +8,8 @@ use App\Http\Resources\Navdata as NavdataResource;
use App\Repositories\Criteria\WhereCriteria;
use App\Repositories\FlightRepository;
use App\Services\FlightService;
use Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Prettus\Repository\Criteria\RequestCriteria;
use Prettus\Repository\Exceptions\RepositoryException;
@@ -44,6 +44,9 @@ class FlightController extends Controller
*/
public function index(Request $request)
{
/**
* @var $user \App\Models\User
*/
$user = Auth::user();
$where = [
@@ -52,7 +55,7 @@ class FlightController extends Controller
];
if (setting('pilots.restrict_to_company')) {
$where['airline_id'] = Auth::user()->airline_id;
$where['airline_id'] = $user->airline_id;
}
if (setting('pilots.only_flights_from_current', false)) {
$where['dpt_airport_id'] = $user->curr_airport_id;

View File

@@ -20,6 +20,7 @@ use App\Http\Resources\PirepComment as PirepCommentResource;
use App\Http\Resources\PirepFieldCollection;
use App\Models\Acars;
use App\Models\Enums\AcarsType;
use App\Models\Enums\FlightType;
use App\Models\Enums\PirepFieldSource;
use App\Models\Enums\PirepSource;
use App\Models\Enums\PirepState;
@@ -93,6 +94,10 @@ class PirepController extends Controller
$attrs['created_at'] = Carbon::createFromTimeString($attrs['created_at']);
}
if (array_key_exists('updated_at', $attrs)) {
$attrs['updated_at'] = Carbon::createFromTimeString($attrs['updated_at']);
}
return $attrs;
}
@@ -186,6 +191,9 @@ class PirepController extends Controller
{
Log::info('PIREP Prefile, user '.Auth::id(), $request->post());
/**
* @var $user \App\Models\User
*/
$user = Auth::user();
$attrs = $this->parsePirep($request);
@@ -228,7 +236,7 @@ class PirepController extends Controller
// Default to a scheduled passenger flight
if (!array_key_exists('flight_type', $attrs)) {
$attrs['flight_type'] = 'J';
$attrs['flight_type'] = FlightType::SCHED_PAX;
}
$pirep->save();

View File

@@ -13,18 +13,17 @@ use App\Repositories\Criteria\WhereCriteria;
use App\Repositories\FlightRepository;
use App\Repositories\PirepRepository;
use App\Repositories\UserRepository;
use App\Services\BidService;
use App\Services\FlightService;
use App\Services\UserService;
use Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Prettus\Repository\Criteria\RequestCriteria;
use Prettus\Repository\Exceptions\RepositoryException;
/**
* Class UserController
*/
class UserController extends Controller
{
private $bidSvc;
private $flightRepo;
private $flightSvc;
private $pirepRepo;
@@ -32,8 +31,7 @@ class UserController extends Controller
private $userSvc;
/**
* UserController constructor.
*
* @param BidService $bidSvc
* @param FlightRepository $flightRepo
* @param FlightService $flightSvc
* @param PirepRepository $pirepRepo
@@ -41,12 +39,14 @@ class UserController extends Controller
* @param UserService $userSvc
*/
public function __construct(
BidService $bidSvc,
FlightRepository $flightRepo,
FlightService $flightSvc,
PirepRepository $pirepRepo,
UserRepository $userRepo,
UserService $userSvc
) {
$this->bidSvc = $bidSvc;
$this->flightRepo = $flightRepo;
$this->flightSvc = $flightSvc;
$this->pirepRepo = $pirepRepo;
@@ -61,11 +61,11 @@ class UserController extends Controller
*/
protected function getUserId(Request $request)
{
if ($request->id === null) {
if ($request->get('id') === null) {
return Auth::user()->id;
}
return $request->id;
return $request->get('id');
}
/**
@@ -110,7 +110,7 @@ class UserController extends Controller
if ($request->isMethod('PUT') || $request->isMethod('POST')) {
$flight_id = $request->input('flight_id');
$flight = $this->flightRepo->find($flight_id);
$bid = $this->flightSvc->addBid($flight, $user);
$bid = $this->bidSvc->addBid($flight, $user);
return new BidResource($bid);
}
@@ -124,11 +124,11 @@ class UserController extends Controller
}
$flight = $this->flightRepo->find($flight_id);
$this->flightSvc->removeBid($flight, $user);
$this->bidSvc->removeBid($flight, $user);
}
// Return the flights they currently have bids on
$bids = Bid::where(['user_id' => $user->id])->get();
$bids = $this->bidSvc->findBidsForUser($user);
return BidResource::collection($bids);
}