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

CalendarController::loadAction()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 25
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 18
nc 3
nop 1
dl 0
loc 25
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
    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