Bids are missing subfleets in API response #867 (#868)

Bids are missing subfleets in API response #867
This commit is contained in:
Nabeel S
2020-10-12 12:49:11 -04:00
committed by GitHub
parent 193fbd369d
commit dc007f6d9e
7 changed files with 100 additions and 23 deletions

View File

@@ -105,7 +105,7 @@ class UserController extends Controller
*/
public function bids(Request $request)
{
$user = $this->userRepo->find($this->getUserId($request));
$user = $this->userSvc->getUser($this->getUserId($request));
// Add a bid
if ($request->isMethod('PUT') || $request->isMethod('POST')) {

View File

@@ -13,6 +13,14 @@ use Illuminate\Support\Facades\Log;
class BidService extends Service
{
/** @var FlightService */
private $flightSvc;
public function __construct(FlightService $flightSvc)
{
$this->flightSvc = $flightSvc;
}
/**
* Get a specific bid for a user
*
@@ -35,8 +43,20 @@ class BidService extends Service
*/
public function findBidsForUser(User $user)
{
return Bid::with(['flight', 'flight.simbrief'])
$bids = Bid::with([
'flight',
'flight.simbrief',
'flight.subfleets',
'flight.subfleets.aircraft',
'flight.subfleets.fares',
])
->where(['user_id' => $user->id])->get();
foreach ($bids as $bid) {
$bid->flight = $this->flightSvc->filterSubfleets($user, $bid->flight);
}
return $bids;
}
/**

View File

@@ -8,6 +8,7 @@ use App\Models\Bid;
use App\Models\Enums\Days;
use App\Models\Flight;
use App\Models\FlightFieldValue;
use App\Models\User;
use App\Repositories\FlightRepository;
use App\Repositories\NavdataRepository;
use App\Support\Units\Time;
@@ -123,12 +124,12 @@ class FlightService extends Service
/**
* Filter out subfleets to only include aircraft that a user has access to
*
* @param $user
* @param $flight
* @param User $user
* @param Flight $flight
*
* @return mixed
*/
public function filterSubfleets($user, $flight)
public function filterSubfleets(User $user, Flight $flight)
{
/** @var \Illuminate\Support\Collection $subfleets */
$subfleets = $flight->subfleets;

View File

@@ -85,7 +85,7 @@ class UserService extends Service
*
* @return User
*/
public function createUser(array $attrs, array $roles = null): User
public function createUser(array $attrs, array $roles = []): User
{
$user = User::create($attrs);
$user->api_key = Utils::generateApiKey();