Passed
Push — develop ( c36f9a...b61b19 )
by Jens
05:31
created

ImagesRouting::newAjaxRoute()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 6

Duplication

Lines 9
Ratio 100 %

Importance

Changes 0
Metric Value
cc 2
eloc 6
nc 2
nop 1
dl 9
loc 9
rs 9.6666
c 0
b 0
f 0
1
<?php
2
/**
3
 * User: Jens
4
 * Date: 29-1-2017
5
 * Time: 16:11
6
 */
7
8
namespace CloudControl\Cms\components\cms;
9
10
11
use CloudControl\Cms\cc\Request;
12
use CloudControl\Cms\components\CmsComponent;
13
14
class ImagesRouting implements CmsRouting
15
{
16
17
    /**
18
     * ImagesRouting constructor.
19
     * @param \CloudControl\Cms\cc\Request $request
20
     * @param mixed|string $relativeCmsUri
21
     * @param CmsComponent $cmsComponent
22
     */
23
    public function __construct(Request $request, $relativeCmsUri, CmsComponent $cmsComponent)
24
    {
25
        if ($relativeCmsUri == '/images') {
26
            $this->overviewRoute($cmsComponent);
27
        } elseif ($relativeCmsUri == '/images.json') {
28
            $this->jsonRoute($cmsComponent);
29
        } elseif ($relativeCmsUri == '/images/new') {
30
            $this->newRoute($request, $cmsComponent);
31
        } elseif ($relativeCmsUri == '/images/new-ajax') {
32
            $this->newAjaxRoute($cmsComponent);
33
        } elseif ($relativeCmsUri == '/images/delete' && isset($request::$get[CmsComponent::FILES_PARAMETER_FILE])) {
34
            $this->deleteRoute($request, $cmsComponent);
35
        } elseif ($relativeCmsUri == '/images/show' && isset($request::$get[CmsComponent::FILES_PARAMETER_FILE])) {
36
            $this->showRoute($request, $cmsComponent);
37
        }
38
    }
39
40
    /**
41
     * @param CmsComponent $cmsComponent
42
     */
43
    private function overviewRoute($cmsComponent)
44
    {
45
        $cmsComponent->subTemplate = 'images';
46
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_IMAGES);
47
        $cmsComponent->setParameter(CmsComponent::PARAMETER_IMAGES, $cmsComponent->storage->getImages()->getImages());
48
        $cmsComponent->setParameter(CmsComponent::PARAMETER_SMALLEST_IMAGE, $cmsComponent->storage->getImageSet()->getSmallestImageSet()->slug);
49
    }
50
51
    /**
52
     * @param CmsComponent $cmsComponent
53
     */
54
    private function jsonRoute($cmsComponent)
55
    {
56
        header(CmsComponent::CONTENT_TYPE_APPLICATION_JSON);
57
        die(json_encode($cmsComponent->storage->getImages()));
58
    }
59
60
    /**
61
     * @param $request
62
     * @param CmsComponent $cmsComponent
63
     */
64
    private function newRoute($request, $cmsComponent)
65
    {
66
        $cmsComponent->subTemplate = 'images/form';
67
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_IMAGES);
68
        if (isset($_FILES[CmsComponent::FILES_PARAMETER_FILE])) {
69
            $cmsComponent->storage->getImages()->addImage($_FILES[CmsComponent::FILES_PARAMETER_FILE]);
70
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/images');
71
            exit;
72
        }
73
    }
74
75
    /**
76
     * @param $request
77
     * @param CmsComponent $cmsComponent
78
     */
79 View Code Duplication
    private function newAjaxRoute($cmsComponent)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
80
    {
81
        if (isset($_FILES[CmsComponent::FILES_PARAMETER_FILE])) {
82
            $image = $cmsComponent->storage->getImages()->addImage($_FILES[CmsComponent::FILES_PARAMETER_FILE]);
83
            header('Content-type: application/json');
84
            die(json_encode($image));
85
        }
86
        die('error occured');
87
    }
88
89
    /**
90
     * @param $request
91
     * @param CmsComponent $cmsComponent
92
     */
93
    private function deleteRoute($request, $cmsComponent)
94
    {
95
        $cmsComponent->storage->getImages()->deleteImageByName($request::$get[CmsComponent::FILES_PARAMETER_FILE]);
96
        header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/images');
97
        exit;
98
    }
99
100
    /**
101
     * @param $request
102
     * @param CmsComponent $cmsComponent
103
     */
104
    private function showRoute($request, $cmsComponent)
105
    {
106
        $cmsComponent->subTemplate = 'images/show';
107
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_IMAGES);
108
        $cmsComponent->setParameter(CmsComponent::PARAMETER_IMAGE, $cmsComponent->storage->getImages()->getImageByName($request::$get[CmsComponent::FILES_PARAMETER_FILE]));
109
    }
110
}