Test Failed
Push — master ( 6435b1...7454c1 )
by Theo
03:00
created

CalendarController   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 19
dl 0
loc 32
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A loadAction() 0 25 3
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
    public function loadAction(Request $request): Response
17
    {
18
        $startDate = new \DateTime($request->get('start'));
19
        $endDate = new \DateTime($request->get('end'));
20
        $filters = $request->get('filters', []);
21
22
        try {
23
            $content = $this
24
                ->get('fullcalendar.service.calendar')
25
                ->getData($startDate, $endDate, $filters);
26
            $status = empty($content)
27
                ? Response::HTTP_NO_CONTENT
28
                : 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
        $response = new Response();
36
        $response->headers->set('Content-Type', 'application/json');
37
        $response->setContent($content);
38
        $response->setStatusCode($status);
39
40
        return $response;
41
    }
42
}
43