CalendarController::loadAction()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 25
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 3.0494

Importance

Changes 0
Metric Value
cc 3
eloc 18
nc 3
nop 1
dl 0
loc 25
ccs 14
cts 17
cp 0.8235
crap 3.0494
rs 9.6666
c 0
b 0
f 0
1
<?php
2
3
namespace Toiba\FullCalendarBundle\Controller;
4
5
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
6
use Symfony\Component\HttpFoundation\Request;
7
use Symfony\Component\HttpFoundation\Response;
8
9
class CalendarController extends Controller
10
{
11
    /**
12
     * @param Request $request
13
     *
14
     * @return Response
15
     */
16 2
    public function loadAction(Request $request): Response
17
    {
18 2
        $startDate = new \DateTime($request->get('start'));
19 2
        $endDate = new \DateTime($request->get('end'));
20 2
        $filters = $request->get('filters', []);
21
22
        try {
23
            $content = $this
24 2
                ->get('fullcalendar.service.calendar')
25 2
                ->getData($startDate, $endDate, $filters);
26 2
            $status = empty($content)
27 1
                ? Response::HTTP_NO_CONTENT
28 2
                : Response::HTTP_OK
29
            ;
30
        } catch (\Exception $exception) {
31
            $content = json_encode(['error' => $exception->getMessage()]);
32
            $status = Response::HTTP_INTERNAL_SERVER_ERROR;
33
        }
34
35 2
        $response = new Response();
36 2
        $response->headers->set('Content-Type', 'application/json');
37 2
        $response->setContent($content);
38 2
        $response->setStatusCode($status);
39
40 2
        return $response;
41
    }
42
}
43