Don't return bids by default, fix user flight column #639 (#640)

Fix the user api response, don't return bids by default, fix flights column #639
This commit is contained in:
Nabeel S
2020-03-25 18:04:26 -04:00
committed by GitHub
parent 88e8ea6ed1
commit f3fe3a56ba
7 changed files with 30 additions and 25 deletions

View File

@@ -90,7 +90,7 @@ class UserController extends Controller
public function get($id) public function get($id)
{ {
$user = $this->userRepo $user = $this->userRepo
->with(['airline', 'bids', 'rank']) ->with(['airline', 'rank'])
->find($id); ->find($id);
return new UserResource($user); return new UserResource($user);

View File

@@ -3,7 +3,6 @@
namespace App\Http\Resources; namespace App\Http\Resources;
use App\Contracts\Resource; use App\Contracts\Resource;
use App\Http\Resources\Flight as FlightResource;
/** /**
* @mixin \App\Models\User * @mixin \App\Models\User
@@ -30,7 +29,6 @@ class User extends Resource
$res['airline'] = Airline::make($this->airline); $res['airline'] = Airline::make($this->airline);
$res['bids'] = UserBid::collection($this->whenLoaded('bids')); $res['bids'] = UserBid::collection($this->whenLoaded('bids'));
$res['flights'] = new FlightResource($this->whenLoaded('flights'));
$res['rank'] = Rank::make($this->rank); $res['rank'] = Rank::make($this->rank);
/* /*

View File

@@ -4,17 +4,20 @@ namespace App\Http\Resources;
use App\Contracts\Resource; use App\Contracts\Resource;
/**
* @mixin \App\Models\Bid
*/
class UserBid extends Resource class UserBid extends Resource
{ {
public function toArray($request) public function toArray($request)
{ {
return [ return [
'id' => $this->id, 'id' => $this->id,
'user_id' => $this->user_id, 'user_id' => $this->user_id,
'flight_id' => $this->flight_id, 'flight_id' => $this->flight_id,
'flights' => Flight::collection($this->whenLoaded('flight')), 'created_at' => $this->created_at,
//'created_at' => $this->created_at, 'updated_at' => $this->updated_at,
//'updated_at' => $this->updated_at, 'flight' => new Flight($this->whenLoaded('flight')),
]; ];
} }
} }

View File

@@ -3,7 +3,14 @@
namespace App\Models; namespace App\Models;
use App\Contracts\Model; use App\Contracts\Model;
use Carbon\Carbon;
/**
* @property string user_id
* @property string flight_id
* @property Carbon created_at
* @property Carbon updated_at
*/
class Bid extends Model class Bid extends Model
{ {
public $table = 'bids'; public $table = 'bids';

View File

@@ -201,10 +201,10 @@ class User extends Authenticatable
/** /**
* These are the flights they've bid on * These are the flights they've bid on
*/ */
public function flights() // public function flights()
{ // {
return $this->belongsToMany(Flight::class, 'bids'); // return $this->belongsToMany(Flight::class, 'bids');
} // }
/** /**
* The bid rows * The bid rows

View File

@@ -73,12 +73,12 @@ class BidTest extends TestCase
// Query the API and see that the user has the bids // Query the API and see that the user has the bids
// And pull the flight details for the user/bids // And pull the flight details for the user/bids
$req = $this->get('/api/user', $headers); $req = $this->get('/api/user/bids', $headers);
$req->assertStatus(200); $req->assertStatus(200);
$body = $req->json()['data']; $body = $req->json()['data'];
$this->assertCount(1, $body['bids']); $req->assertStatus(200);
$this->assertEquals($flight->id, $body['bids'][0]['flight_id']); $this->assertEquals($flight->id, $body[0]['flight_id']);
$req = $this->get('/api/users/'.$user->id.'/bids', $headers); $req = $this->get('/api/users/'.$user->id.'/bids', $headers);
@@ -109,17 +109,15 @@ class BidTest extends TestCase
$bids = $user->bids()->get(); $bids = $user->bids()->get();
$this->assertTrue($bids->isEmpty()); $this->assertTrue($bids->isEmpty());
$req = $this->get('/api/user', $headers); $req = $this->get('/api/user/bids', $headers);
$req->assertStatus(200); $req->assertStatus(200);
$body = $req->json()['data']; $body = $req->json()['data'];
$this->assertEquals($user->id, $body['id']); $this->assertCount(0, $body);
$this->assertCount(0, $body['bids']);
$req = $this->get('/api/users/'.$user->id.'/bids', $headers); $req = $this->get('/api/users/'.$user->id.'/bids', $headers);
$req->assertStatus(200); $req->assertStatus(200);
$body = $req->json()['data']; $body = $req->json()['data'];
$this->assertCount(0, $body); $this->assertCount(0, $body);
} }
@@ -196,12 +194,11 @@ class BidTest extends TestCase
// Query the API and see that the user has the bids // Query the API and see that the user has the bids
// And pull the flight details for the user/bids // And pull the flight details for the user/bids
$req = $this->get('/api/user', $headers); $req = $this->get('/api/user/bids', $headers);
$req->assertStatus(200); $req->assertStatus(200);
$body = $req->json()['data']; $body = $req->json()['data'];
$this->assertEquals($user->id, $body['id']); $this->assertCount(0, $body);
$this->assertCount(0, $body['bids']);
$req = $this->get('/api/users/'.$user->id.'/bids', $headers); $req = $this->get('/api/users/'.$user->id.'/bids', $headers);
$req->assertStatus(200); $req->assertStatus(200);

View File

@@ -84,8 +84,8 @@ class PIREPTest extends TestCase
/** /**
* Now set the PIREP state to ACCEPTED * Now set the PIREP state to ACCEPTED
*/ */
$new_pirep_count = $pirep->pilot->flights + 1; $new_pirep_count = $pirep->user->flights + 1;
$new_flight_time = $pirep->pilot->flight_time + $pirep->flight_time; $new_flight_time = $pirep->user->flight_time + $pirep->flight_time;
$this->pirepSvc->changeState($pirep, PirepState::ACCEPTED); $this->pirepSvc->changeState($pirep, PirepState::ACCEPTED);
$this->assertEquals($new_pirep_count, $pirep->pilot->flights); $this->assertEquals($new_pirep_count, $pirep->pilot->flights);