ImagesController::postImageAction()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 19
rs 9.6333
c 0
b 0
f 0
cc 2
nc 2
nop 1
1
<?php
2
3
namespace KI\CoreBundle\Controller;
4
5
use KI\CoreBundle\Entity\Image;
6
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
7
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
8
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
9
use Symfony\Component\HttpFoundation\Request;
10
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
11
12
class ImagesController extends BaseController
13
{
14
    /**
15
     * @ApiDoc(
16
     *  description="Permet d'uploader des images via le rédacteur",
17
     *  statusCodes={
18
     *   201="Requête traitée avec succès avec création d’un document",
19
     *   400="La syntaxe de la requête est erronée",
20
     *   401="Une authentification est nécessaire pour effectuer cette action",
21
     *   403="Pas les droits suffisants pour effectuer cette action",
22
     *   503="Service temporairement indisponible ou en maintenance",
23
     *  },
24
     *  section="Général"
25
     * )
26
     * @Route("/images")
27
     * @Method("POST")
28
     */
29
    public function postImageAction(Request $request)
30
    {
31
        if (!$request->files->has('file')) {
32
            throw new BadRequestHttpException('Aucun fichier fourni');
33
        }
34
35
        $image = new Image();
36
        $file = $request->files->get('file');
37
        $image->setExt($file->guessExtension());
38
        $image->setFile($file);
39
40
        $manager = $this->getDoctrine()->getManager();
41
        $manager->persist($image);
42
        $manager->flush();
43
44
        return $this->json([
45
            'filelink' => '../api/'.$image->getWebPath(),
46
        ], 201);
47
    }
48
}
49