private function createBasicFlight($number) { $flight = new Flight(); $flight->flightNumber = $number; $flight->airline = "Foobar Air"; $flight->arrivalDate = "2016-02-02"; $flight->arrivalTime = "00:00:00"; $flight->airport = "FOO"; $flight->isChecked = true; $flight->save(); return $flight; }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Requests\FlightStoreRequest $request, $slug) { $flight = new Flight(); $flight->flight_thread_id = $request->flight_thread_id; $flight->aircraft_id = $request->aircraft_id; $flight->user_id = Auth::User()->id; $flight->departure_time = Carbon::createFromFormat('d.m.Y G:i', $request->departure_day . ' ' . $request->departure_time); $flight->arrival_time = Carbon::createFromFormat('d.m.Y G:i', $request->departure_day . ' ' . $request->departure_time)->addHours(24)->second(0); if ($flight->save()) { return response()->json('true'); } return response()->json('false'); }
private function processRegistration($req, $conferenceID, $accountID) { return DB::transaction(function () use($req, $conferenceID, $accountID) { //Grab request data for use later $needsTransport = $req['needsTransportation']; $needsAccommodation = $req['needsAccommodation']; $attendees = $req['attendees']; //Check whether dependents are okay/owned by the current user if (!CheckDependents::dependentsOkay($attendees)) { return ["message" => "bad_attendee_listing", "code" => 400, "attendees" => $attendees]; } $existing = UserConference::where('conferenceID', $conferenceID)->whereIn('userID', $attendees)->count(); if ($existing > 0) { return ["message" => "already_registered", "code" => 400, "attendees" => $attendees]; } //If the request explicitly doesn't have a flight, just register attendees without one if (isset($req['hasFlight'])) { Log::debug("Attendees being registered without a flight."); if (!$req['hasFlight']) { return $this->registerAttendees($conferenceID, $attendees, $needsTransport, $needsAccommodation, null); } } $number = $req['flight']['number']; $arrivalDay = $req['flight']['arrivalDate']; $arrivalTime = $req['flight']['arrivalTime']; $airline = $req['flight']['airline']; $airport = $req['flight']['airport']; //Grab (checked) matching flights for airline/flight number/date $flights = Flight::where('flightNumber', $number)->where('airline', $airline)->where('arrivalDate', $arrivalDay)->where('isChecked', true)->get(); if (sizeof($flights) >= 1) { foreach ($flights as $row) { if ($row->arrivalTime == $arrivalTime && $row->airport == $airport) { Log::info("Attendees using {$row->airline} flight {$row->flightNumber} being registered using existing flight"); return $this->registerAttendees($conferenceID, $attendees, $needsTransport, $needsAccommodation, $row->id); } } return ["message" => "flight_data_mismatch", "code" => 400, "attendees" => $attendees]; } else { //Create a new flight with the given data $flight = new Flight(); $flight->flightNumber = $number; $flight->airline = $airline; $flight->arrivalDate = $arrivalDay; $flight->arrivalTime = $arrivalTime; $flight->airport = $airport; $flight->isChecked = false; $flight->save(); Log::info("Attendees using {$flight->airline} flight {$flight->flightNumber} being registered using new flight"); return $this->registerAttendees($conferenceID, $attendees, $needsTransport, $needsAccommodation, $flight->id); } }); }