SeatMapController   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 16
c 2
b 0
f 0
dl 0
loc 42
rs 10
wmc 6

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getSeats() 0 17 4
A setSeats() 0 14 2
1
<?php
2
3
namespace App\Http\Controllers\TicketShop;
4
5
use Illuminate\Http\Request;
6
use App\Http\Controllers\Controller;
7
use App\Event;
8
use App\Http\Requests\SelectTickets;
9
10
class SeatMapController extends Controller
11
{
12
    /**
13
     * Receives id of event for which the user wants to buy tickets
14
     */
15
    public function getSeats(Request $request, Event $event)
16
    {
17
        $seatMapView = 'ticketshop.seatmaps.seatmap-js';
18
        if ($event->seatMap->layout === null) {
19
            $seatMapView = 'ticketshop.seatmaps.no-seats';
20
        }
21
22
        // Only set already chosen tickets and seats, if they have been selected for the same event
23
        $tickets = null;
24
        $seats = null;
25
        if (session()->has('event') && $event->id === session('event')->id) {
26
            $tickets = $request->session()->get('tickets');
27
            $seats   = $request->session()->get('seats');
28
        }
29
30
        // TODO: Bug@countValidation
31
        return view($seatMapView, ['event' => $event, 'tickets' => $tickets, 'seats' => $seats]);
32
    }
33
34
    /**
35
     * Receives number of tickets per category and optionally
36
     * the seat ids of the selected seats
37
     */
38
    public function setSeats(SelectTickets $request, Event $event)
39
    {
40
        $validated = $request->validated();
41
42
        if ($event->seatMap->layout !== null) {
43
            // handle seat ids
44
            session(['seats' => $validated['selected-seats']]);
45
        }
46
47
        session(['tickets' => $validated['tickets']]);
48
        session(['event' => $event]);
49
50
51
        return redirect()->route('ts.customerData');
52
    }
53
}
54