Completed
Push — master ( e48220...15f13c )
by
unknown
07:36
created

MediaAdminController::imageRedirectAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 5
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 2
crap 2
1
<?php
2
3
namespace MediaMonks\SonataMediaBundle\Controller;
4
5
use MediaMonks\SonataMediaBundle\Entity\Media;
6
use MediaMonks\SonataMediaBundle\Model\MediaInterface;
7
use Sonata\AdminBundle\Controller\CRUDController;
8
use Symfony\Component\HttpFoundation\BinaryFileResponse;
9
use Symfony\Component\HttpFoundation\RedirectResponse;
10
use Symfony\Component\HttpFoundation\Request;
11
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
12
use Symfony\Component\HttpFoundation\StreamedResponse;
13
14
class MediaAdminController extends CRUDController
15
{
16
    /**
17
     * @return \Symfony\Component\HttpFoundation\Response
18
     */
19
    public function createAction()
20
    {
21
        if (!$this->getRequest()->get('provider') && $this->getRequest()->isMethod('get')) {
22
            return $this->render(
23
                '@MediaMonksSonataMedia/MediaAdmin/select_provider.html.twig',
24
                [
25
                    'providers' => $this->get('mediamonks.sonata_media.provider.pool')->getProviders(),
26
                    'base_template' => $this->getBaseTemplate(),
27
                    'admin' => $this->admin,
28
                    'action' => 'create',
29
                ]
30
            );
31
        }
32
33
        return parent::createAction();
34
    }
35
36
    /**
37
     * @param Request $request
38
     * @param $id
39
     * @return StreamedResponse
40
     */
41
    public function downloadAction(Request $request, $id)
42
    {
43
        return $this->get('mediamonks.sonata_media.utility.download')->getStreamedResponse($this->getMediaById($id));
44
    }
45
46
    /**
47
     * @param Request $request
48
     * @param int $id
49
     * @return RedirectResponse
50
     */
51
    public function imageAction(Request $request, $id)
52
    {
53
        return $this->get('mediamonks.sonata_media.utility.image')->getRedirectResponse(
54
            $this->getMediaById($id),
55
            $request
56
        );
57
    }
58
59
    /**
60
     * @param $id
61
     * @return MediaInterface
62
     */
63
    protected function getMediaById($id)
64
    {
65
        return $this->getDoctrine()->getManager()->find('MediaMonksSonataMediaBundle:Media', $id);
66
    }
67
}
68