fares & aircraft fares

This commit is contained in:
Nabeel Shahzad
2017-06-10 01:50:00 -05:00
parent f4f0657cb8
commit bacc372985
7 changed files with 92 additions and 10 deletions

View File

@@ -62,4 +62,9 @@ class Aircraft extends Model
'aircraft_class_id'
);
}
public function fares() {
# aircraft_fare == table name
return $this->belongsToMany('App\Models\Fare', 'aircraft_fare');
}
}

View File

@@ -44,5 +44,4 @@ class Airlines extends Model
'name' => 'required',
];
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Services;
use App\Repositories\FareRepository;
use App\Repositories\AircraftRepository;
class AircraftFareService {
protected $aircraft, $fare;
/**
* return a PIREP model
* @param $aircraft AircraftRepository
* @param $fare FareRepository
*/
public function __construct(AircraftRepository $aircraft, FareRepository $fare) {
$this->fare = $fare;
$this->aircraft = $aircraft;
}
public function link(int $aircraft_id, int $fare_id) {
}
public function unlink(int $aircraft_id, int $fare_id) {
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Services;
use App\Repositories\AircraftRepository;
class PIREPService {
protected $aircraft;
/**
* return a PIREP model
*/
public function __construct(
AircraftRepository $aircraft
) {
$this->aircraft = $aircraft;
}
public function create() {
}
}

View File

@@ -0,0 +1,7 @@
<?php
$factory->define(App\Models\Fare::class, function (Faker\Generator $faker) {
return [
];
});

View File

@@ -34,3 +34,13 @@ Route::patch('admin/aircraftClasses/{aircraftClasses}', ['as'=> 'admin.aircraftC
Route::delete('admin/aircraftClasses/{aircraftClasses}', ['as'=> 'admin.aircraftClasses.destroy', 'uses' => 'AircraftClassController@destroy']);
Route::get('admin/aircraftClasses/{aircraftClasses}', ['as'=> 'admin.aircraftClasses.show', 'uses' => 'AircraftClassController@show']);
Route::get('admin/aircraftClasses/{aircraftClasses}/edit', ['as'=> 'admin.aircraftClasses.edit', 'uses' => 'AircraftClassController@edit']);
Route::get('admin/fares', ['as'=> 'admin.fares.index', 'uses' => 'FareController@index']);
Route::post('admin/fares', ['as'=> 'admin.fares.store', 'uses' => 'FareController@store']);
Route::get('admin/fares/create', ['as'=> 'admin.fares.create', 'uses' => 'FareController@create']);
Route::put('admin/fares/{fares}', ['as'=> 'admin.fares.update', 'uses' => 'FareController@update']);
Route::patch('admin/fares/{fares}', ['as'=> 'admin.fares.update', 'uses' => 'FareController@update']);
Route::delete('admin/fares/{fares}', ['as'=> 'admin.fares.destroy', 'uses' => 'FareController@destroy']);
Route::get('admin/fares/{fares}', ['as'=> 'admin.fares.show', 'uses' => 'FareController@show']);
Route::get('admin/fares/{fares}/edit', ['as'=> 'admin.fares.edit', 'uses' => 'FareController@edit']);

View File

@@ -1,33 +1,40 @@
<?php
use App\Models\Aircraft;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
class AircraftTest extends TestCase
{
protected $aircraft,
$aircraft_class;
protected $aircraft, $aircraft_class;
public function setUp() {
parent::setUp();
$this->aircraft = $this->createRepository('AircraftRepository');
$this->aircraft_class = $this->createRepository('AircraftClassRepository');
# add an aircraft_class
factory(App\Models\AircraftClass::class)->create();
}
protected function add_fares(Aircraft $aircraft) {
}
public function testAircraftClasses()
{
factory(App\Models\AircraftClass::class)->create();
# add a few fare classes
$this->aircraft->create([
'aircraft_class_id' => 1,
'icao' => 'B744',
'name' => 'Boeing 747',
'icao' => 'B777',
'name' => 'Boeing 777',
]);
$aircraft = App\Models\Aircraft::where('icao', 'B744')->first();
$this->assertEquals('B744', $aircraft->icao, 'ICAO matching');
$aircraft = Aircraft::where('icao', 'B777')->first();
$this->assertEquals('B777', $aircraft->icao, 'ICAO matching');
$this->assertEquals('H', $aircraft->class->code, 'Check belongsTo relationship');
// check to see if the fares are properly applied to this aircraft
$this->add_fares($aircraft);
}
}