/** * Update the specified reservation in storage. * * @param Reservation $reservation * @return Response */ public function update(Reservation $reservation, UpdateReservationRequest $request) { $reservation->user()->associate($request->get('user_id')); $reservation->resource()->associate($request->get('resource_id')); $this->updateTimeFields($reservation, $request); $reservation->save(); return redirect()->route('admin.reservations.index'); }
/** * Store a new reservation * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function create(Client $client, Request $request, Authenticatable $user, $id) { $this->validate($request, ['message' => 'required|string']); $property = VacationProperty::find($id); $reservation = new Reservation($request->all()); $reservation->respond_phone_number = $user->fullNumber(); $reservation->user()->associate($property->user); $property->reservations()->save($reservation); $this->notifyHost($client, $reservation); $request->session()->flash('status', "Sending your reservation request now."); return redirect()->route('property-show', ['id' => $property->id]); }
/** * Run the database seeds. * * @return void */ public function run() { $hostUser = new User(['name' => 'Captain Kirk', 'email' => '*****@*****.**', 'password' => Hash::make('strongpassword'), 'country_code' => '1', 'phone_number' => '5558180101']); $hostUser->save(); $guestUser = new User(['name' => 'Mr. Spock', 'email' => '*****@*****.**', 'password' => Hash::make('l1v3l0ngandpr0sp3r'), 'country_code' => '1', 'phone_number' => '5558180202']); $guestUser->save(); $property = new VacationProperty(['description' => 'USS Enterprise', 'image_url' => 'http://www.ex-astris-scientia.org/articles/new_enterprise/enterprise-11-11-08.jpg']); $hostUser->properties()->save($property); $reservation = new Reservation(['message' => 'I want to reserve a room in your ship']); $reservation->respond_phone_number = $guestUser->fullNumber(); $reservation->user()->associate($hostUser); $property->reservations()->save($reservation); }
/** * Store a newly created resource in storage. * * @return Response */ public function store(Request $request) { $nbRes = Reservation::where('user_id', '=', Auth::user()->id)->where('valide', '<=', 1)->count(); if ($nbRes < 3) { $velo = Velo::findOrFail($request->input('idVelo')); // Création d'une nouvelle reservation $reservation = new Reservation(['valide' => 0]); $reservation->user()->associate(Auth::user()); $reservation->velo()->associate($velo); $reservation->save(); // Création des demi journéées choisies $values = $request->all(); $keys = array_keys($values); $newDJ = array(); unset($keys[0]); //on retire le token for ($i = 1; $i < sizeof($values) - 2; $i += 2) { // -2 pour retirer le veloId //control des champs $regles = array($keys[$i] => 'required', $keys[$i + 1] => 'required'); $validation = Validator::make($values, $regles); if ($validation->fails()) { Session::flash('info', 'Le formulaire envoyé comportait des champs vides !'); $reservation->delete(); foreach ($newDJ as $dj) { $dj->delete(); } return redirect()->back(); } else { //formattage de la date $date = explode('-', $values[$keys[$i]]); $date = $date[2] . '-' . $date[1] . '-' . $date[0]; $demijournee = new Demijournee(['date' => $date, 'periode' => $values[$keys[$i + 1]]]); $demijournee->reservation()->associate($reservation); $demijournee->save(); $newDJ[] = $demijournee; } } return redirect()->route('location.show', ['location' => $reservation->id]); } else { Session::flash('info', 'Vous ne pouvez pas avoir plus de trois réservations en attente ! Merci de votre compréhension.'); return redirect()->back(); } }
public function testAcceptRejectNoPending() { // Given $this->startSession(); $userData = ['name' => 'Captain Kirk', 'email' => '*****@*****.**', 'password' => 'strongpassword', 'country_code' => '1', 'phone_number' => '5558180101']; $newUser = new User($userData); $newUser->save(); $userData2 = ['name' => 'Captain Kirk rent', 'email' => '*****@*****.**', 'password' => 'strongpassword', 'country_code' => '1', 'phone_number' => '5558180102']; $newUser2 = new User($userData2); $newUser2->save(); $propertyData = ['description' => 'Some description', 'image_url' => 'http://www.someimage.com']; $newProperty = new VacationProperty($propertyData); $newUser->properties()->save($newProperty); $reservationData = ['message' => 'Reservation message']; $reservation = new Reservation($reservationData); $reservation->status = 'confirmed'; $reservation->respond_phone_number = $newUser2->fullNumber(); $reservation->user()->associate($newUser); $newProperty->reservations()->save($reservation); $reservation = $reservation->fresh(); $this->assertEquals('confirmed', $reservation->status); // When $response = $this->call('POST', route('reservation-incoming'), ['From' => '+15558180101', 'Body' => 'yes']); $messageDocument = new SimpleXMLElement($response->getContent()); $reservation = $reservation->fresh(); $this->assertEquals('confirmed', $reservation->status); $this->assertNotNull(strval($messageDocument->Message[0])); $this->assertNotEmpty(strval($messageDocument->Message[0])); $this->assertEquals(strval($messageDocument->Message[0]), 'Sorry, it looks like you don\'t have any reservations to respond to.'); }