diff options
author | Mateja <mail@matejamaric.com> | 2020-11-01 22:05:34 +0100 |
---|---|---|
committer | Mateja <mail@matejamaric.com> | 2020-11-01 22:05:34 +0100 |
commit | 3c410d2bac3e338ab6d6045577819e292251c066 (patch) | |
tree | 4cd3186a27ab0bcc58706ed9953dec9cbb364185 /app/Http/Controllers/ReservationsController.php | |
parent | 7be0873705684a5054a1334eccd774c91ec7e824 (diff) | |
download | yota-laravel-3c410d2bac3e338ab6d6045577819e292251c066.tar.gz yota-laravel-3c410d2bac3e338ab6d6045577819e292251c066.zip |
Reorganize controllers.
Diffstat (limited to 'app/Http/Controllers/ReservationsController.php')
-rw-r--r-- | app/Http/Controllers/ReservationsController.php | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/app/Http/Controllers/ReservationsController.php b/app/Http/Controllers/ReservationsController.php new file mode 100644 index 0000000..4816993 --- /dev/null +++ b/app/Http/Controllers/ReservationsController.php @@ -0,0 +1,85 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; +use function dd; +use function redirect; + +use Illuminate\Support\Facades\Validator; +use Illuminate\Support\Facades\Redirect; + +use App\Models\Reservation; +use App\Models\SpecialCall; + +class ReservationsController extends Controller +{ + public function reserve(Request $request) + { + $signs = SpecialCall::all(); + return view('pages.reserve', compact('signs')); + } + + public function reserveForm(Request $request) + { + //$validatedData = $request->validate([ + //... + //]); + + $rules = [ + 'scall' => 'required|alphanum', + 'sdate' => 'required|date', + 'stime' => 'required', + 'edate' => 'required|date', + 'etime' => 'required', + 'freqs' => 'required', + 'modes' => 'required', + 'ocall' => 'required|alphanum', + 'oname' => 'required', + 'email' => 'required|email', + 'phone' => ['required', 'regex:/^[0-9 ]+$/'], + ]; + + $messages = [ + 'freqs.required' => 'You need to choose at least one frequency.', + 'modes.required' => 'You need to choose at least one mode.', + 'ocall.alphanum' => 'Callsigns must be alpha-numeric!', + ]; + + $validator = Validator::make($request->all(), $rules, $messages); + + if ($validator->fails()) { + return Redirect::back() + ->withErrors($validator) + ->withInput(); + } + + $reservation = new Reservation(); + + $reservation->specialCall = $request->scall; + $reservation->fromTime = $request->sdate . ' ' . $request->stime; + $reservation->toTime = $request->edate . ' ' . $request->etime; + $reservation->frequencies = implode(', ', $request->freqs); + $reservation->modes = implode(', ', $request->modes); + $reservation->operatorCall = $request->ocall; + $reservation->operatorName = $request->oname; + $reservation->operatorEmail = $request->email; + $reservation->operatorPhone = $request->phone; + + $reservation->saveOrFail(); + + return redirect()->route('reserve')->with('status', 'Reservation submitted.'); + } + + // Administration + public function reservations(Request $request) + { + $data = Reservation::all(); + return view('pages.reservations', compact('data')); + } + + public function reservationsForm(Request $request) + { + return Redirect::back(); + } +} |