GuestController::create()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
namespace Innoflash\Events\Http\Controllers;
4
5
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
6
use Illuminate\Routing\Controller;
7
use Innoflash\Events\Http\Requests\Guest\CreateRequest;
8
use Innoflash\Events\Models\Guest;
9
use Innoflash\Events\Services\GuestService;
10
use InnoFlash\LaraStart\Traits\APIResponses;
11
12
class GuestController extends Controller
13
{
14
    use AuthorizesRequests, APIResponses;
15
16
    protected $guestService;
17
18
    public function __construct(GuestService $guestService)
19
    {
20
        $this->guestService = $guestService;
21
    }
22
23
    /**
24
     * Adds a guest to an event.
25
     *
26
     * @param CreateRequest $request
27
     * @return \Illuminate\Http\JsonResponse
28
     */
29
    public function create(CreateRequest $request)
30
    {
31
        return $this->guestService->create($request->validated(), 'Guest added to the event');
32
    }
33
34
    /**
35
     * Removes a guest from an event.
36
     *
37
     * @param Guest $guest
38
     * @return mixed
39
     * @throws \Illuminate\Auth\Access\AuthorizationException
40
     */
41
    public function destroy(Guest $guest)
42
    {
43
        $this->authorize('event.delete', $guest->event);
44
        try {
45
            $guest->delete();
46
47
            return $this->successResponse('Guest removed');
48
        } catch (\Throwable $e) {
49
            abort(500, $e->getMessage());
50
        }
51
    }
52
}
53