add separate flight_fields table and move over to flight_field_values

This commit is contained in:
Nabeel Shahzad
2018-03-20 13:06:06 -05:00
parent a9454c319a
commit 485c6e86bb
17 changed files with 147 additions and 45 deletions

View File

@@ -7,7 +7,8 @@ use App\Http\Requests\UpdateFlightRequest;
use App\Interfaces\Controller;
use App\Models\Enums\FlightType;
use App\Models\Flight;
use App\Models\FlightFields;
use App\Models\FlightField;
use App\Models\FlightFieldValue;
use App\Repositories\AirlineRepository;
use App\Repositories\AirportRepository;
use App\Repositories\FareRepository;
@@ -18,6 +19,7 @@ use App\Services\FlightService;
use App\Support\Units\Time;
use Flash;
use Illuminate\Http\Request;
use Log;
use Response;
/**
@@ -62,6 +64,30 @@ class FlightController extends Controller
$this->subfleetRepo = $subfleetRepo;
}
/**
* Save any custom fields found
* @param Flight $flight
* @param Request $request
*/
protected function saveCustomFields(Flight $flight, Request $request): void
{
$custom_fields = [];
$flight_fields = FlightField::all();
foreach ($flight_fields as $field) {
if (!$request->filled($field->slug)) {
continue;
}
$custom_fields[] = [
'name' => $field->name,
'value' => $request->input($field->slug)
];
}
Log::info('PIREP Custom Fields', $custom_fields);
$this->flightSvc->updateCustomFields($flight->id, $custom_fields);
}
/**
* @param $flight
* @return array
@@ -295,7 +321,7 @@ class FlightController extends Controller
* @param Request $request
* @return mixed
*/
public function fields(Request $request)
public function field_values(Request $request)
{
$id = $request->id;
@@ -308,19 +334,19 @@ class FlightController extends Controller
// add custom field to flight
if ($request->isMethod('post')) {
$field = new FlightFields;
$field = new FlightFieldValue;
$field->flight_id = $id;
$field->name = $request->name;
$field->value = $request->value;
$field->save();
} elseif ($request->isMethod('put')) {
$field = FlightFields::where('id', $request->field_id)->first();
$field = FlightFieldValue::where('id', $request->field_id)->first();
$field->value = $request->value;
$field->save();
// update the field value
} // remove custom field from flight
elseif ($request->isMethod('delete')) {
FlightFields::destroy($request->field_id);
FlightFieldValue::destroy($request->field_id);
}
return $this->return_fields_view($flight);