\#21 PIREP scaffolding

This commit is contained in:
Nabeel Shahzad
2017-06-28 19:54:05 -05:00
parent 43effce37c
commit 477b99de29
25 changed files with 1061 additions and 0 deletions

View File

@@ -0,0 +1,150 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests\CreatePirepRequest;
use App\Http\Requests\UpdatePirepRequest;
use App\Repositories\PirepRepository;
use Illuminate\Http\Request;
use Flash;
use Prettus\Repository\Criteria\RequestCriteria;
use Response;
class PirepController extends BaseController
{
private $pirepRepository;
public function __construct(PirepRepository $pirepRepo)
{
$this->pirepRepository = $pirepRepo;
}
/**
* Display a listing of the Pirep.
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$this->pirepRepository->pushCriteria(new RequestCriteria($request));
$pireps = $this->pirepRepository->all();
return view('admin.pireps.index', [
'pireps' => $pireps
]);
}
/**
* Show the form for creating a new Pirep.
*
* @return Response
*/
public function create()
{
return view('admin.pireps.create');
}
/**
* Store a newly created Pirep in storage.
*
* @param CreatePirepRequest $request
*
* @return Response
*/
public function store(CreatePirepRequest $request)
{
$input = $request->all();
$pirep = $this->pirepRepository->create($input);
Flash::success('Pirep saved successfully.');
return redirect(route('admin.pireps.index'));
}
/**
* Display the specified Pirep.
*
* @param int $id
*
* @return Response
*/
public function show($id)
{
$pirep = $this->pirepRepository->findWithoutFail($id);
if (empty($pirep)) {
Flash::error('Pirep not found');
return redirect(route('admin.pireps.index'));
}
return view('admin.pireps.show', [
'pirep' => $pirep,
]);
}
/**
* Show the form for editing the specified Pirep.
*
* @param int $id
*
* @return Response
*/
public function edit($id)
{
$pirep = $this->pirepRepository->findWithoutFail($id);
if (empty($pirep)) {
Flash::error('Pirep not found');
return redirect(route('admin.pireps.index'));
}
return view('admin.pireps.edit', [
'pirep' => $pirep,
]);
}
/**
* Update the specified Pirep in storage.
*
* @param int $id
* @param UpdatePirepRequest $request
*
* @return Response
*/
public function update($id, UpdatePirepRequest $request)
{
$pirep = $this->pirepRepository->findWithoutFail($id);
if (empty($pirep)) {
Flash::error('Pirep not found');
return redirect(route('admin.pireps.index'));
}
$pirep = $this->pirepRepository->update($request->all(), $id);
Flash::success('Pirep updated successfully.');
return redirect(route('admin.pireps.index'));
}
/**
* Remove the specified Pirep from storage.
*
* @param int $id
*
* @return Response
*/
public function destroy($id)
{
$pirep = $this->pirepRepository->findWithoutFail($id);
if (empty($pirep)) {
Flash::error('Pirep not found');
return redirect(route('admin.pireps.index'));
}
$this->pirepRepository->delete($id);
Flash::success('Pirep deleted successfully.');
return redirect(route('admin.pireps.index'));
}
}

View File

@@ -0,0 +1,152 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests\CreatePirepFieldRequest;
use App\Http\Requests\UpdatePirepFieldRequest;
use App\Repositories\PirepFieldRepository;
use Illuminate\Http\Request;
use Flash;
use Prettus\Repository\Criteria\RequestCriteria;
use Response;
class PirepFieldController extends BaseController
{
/** @var PirepFieldRepository */
private $pirepFieldRepo;
public function __construct(PirepFieldRepository $pirepFieldRepo)
{
$this->pirepFieldRepo = $pirepFieldRepo;
}
/**
* Display a listing of the PirepField.
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$this->pirepFieldRepo->pushCriteria(new RequestCriteria($request));
$fields = $this->pirepFieldRepo->all();
return view('admin.pirepFields.index', [
'fields' => $fields,
]);
}
/**
* Show the form for creating a new PirepField.
*
* @return Response
*/
public function create()
{
return view('admin.pirepFields.create');
}
/**
* Store a newly created PirepField in storage.
*
* @param CreatePirepFieldRequest $request
*
* @return Response
*/
public function store(CreatePirepFieldRequest $request)
{
$input = $request->all();
$field = $this->pirepFieldRepo->create($input);
Flash::success('PirepField saved successfully.');
return redirect(route('admin.pirepFields.index'));
}
/**
* Display the specified PirepField.
*
* @param int $id
*
* @return Response
*/
public function show($id)
{
$field = $this->pirepFieldRepo->findWithoutFail($id);
if (empty($field)) {
Flash::error('PirepField not found');
return redirect(route('admin.pirepFields.index'));
}
return view('admin.pirepFields.show', [
'field' => $field,
]);
}
/**
* Show the form for editing the specified PirepField.
*
* @param int $id
*
* @return Response
*/
public function edit($id)
{
$field = $this->pirepFieldRepo->findWithoutFail($id);
if (empty($field)) {
Flash::error('PirepField not found');
return redirect(route('admin.pirepFields.index'));
}
return view('admin.pirepFields.edit', [
'field' => $field,
]);
}
/**
* Update the specified PirepField in storage.
*
* @param int $id
* @param UpdatePirepFieldRequest $request
*
* @return Response
*/
public function update($id, UpdatePirepFieldRequest $request)
{
$field = $this->pirepFieldRepo->findWithoutFail($id);
if (empty($field)) {
Flash::error('PirepField not found');
return redirect(route('admin.pirepFields.index'));
}
$field = $this->pirepFieldRepo->update($request->all(), $id);
Flash::success('PirepField updated successfully.');
return redirect(route('admin.pirepFields.index'));
}
/**
* Remove the specified PirepField from storage.
*
* @param int $id
*
* @return Response
*/
public function destroy($id)
{
$field = $this->pirepFieldRepo->findWithoutFail($id);
if (empty($field)) {
Flash::error('PirepField not found');
return redirect(route('admin.pirepFields.index'));
}
$this->pirepFieldRepo->delete($id);
Flash::success('PirepField deleted successfully.');
return redirect(route('admin.pirepFields.index'));
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\PirepField;
class CreatePirepFieldRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return PirepField::$rules;
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\Pirep;
class CreatePirepRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return Pirep::$rules;
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\PirepField;
class UpdatePirepFieldRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return PirepField::$rules;
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\Pirep;
class UpdatePirepRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return Pirep::$rules;
}
}

91
app/Models/Pirep.php Normal file
View File

@@ -0,0 +1,91 @@
<?php
namespace App\Models;
use Eloquent as Model;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class Pirep
*
* @package App\Models
*/
class Pirep extends Model
{
use Uuids;
use SoftDeletes;
public $table = 'pireps';
protected $dates = ['deleted_at'];
public $fillable
= [
'user_id',
'flight_id',
'aircraft_id',
'flight_time',
'route_code',
'route_leg',
'dpt_airport_id',
'arr_airport_id',
'level',
'route',
'notes',
'status',
'raw_data',
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts
= [
'user_id' => 'integer',
'flight_id' => 'string',
'aircraft_id' => 'integer',
'flight_time' => 'integer',
'level' => 'integer',
'route' => 'string',
'notes' => 'string',
'raw_data' => 'string',
];
/**
* Validation rules
*
* @var array
*/
public static $rules
= [
'dpt_airport_id' => 'required',
'arr_airport_id' => 'required',
];
/**
* Foreign Keys
*/
public function user()
{
return $this->belongsTo('App\Models\User', 'user_id');
}
public function flight()
{
return $this->belongsTo('App\Models\Flight', 'flight_id');
}
public function dpt_airport()
{
return $this->belongsTo('App\Models\Airport', 'dpt_airport_id');
}
public function arr_airport()
{
return $this->belongsTo('App\Models\Airport', 'arr_airport_id');
}
}

42
app/Models/PirepField.php Normal file
View File

@@ -0,0 +1,42 @@
<?php
namespace App\Models;
use Eloquent as Model;
/**
* Class PirepField
*
* @package App\Models
*/
class PirepField extends Model
{
public $table = 'pirep_fields';
public $fillable
= [
'name',
'required',
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts
= [
'name' => 'string',
'required' => 'integer',
];
/**
* Validation rules
*
* @var array
*/
public static $rules
= [
'name' => 'required',
];
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Models;
use Eloquent as Model;
/**
* Class PirepField
*
* @package App\Models
*/
class PirepFieldValues extends Model
{
public $table = 'pirep_field_values';
public $fillable
= [
'pirep_id',
'name',
'value',
'source',
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts
= [
'name' => 'string',
'value' => 'string',
'source' => 'integer',
];
/**
* Validation rules
*
* @var array
*/
public static $rules
= [
'name' => 'required',
];
}