FolderRouting   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 35
c 2
b 0
f 0
dl 0
loc 82
rs 10
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A newFolderRoute() 0 11 2
A __construct() 0 3 1
A editFolderRoute() 0 22 2
A deleteFolderRoute() 0 7 1
1
<?php
2
/**
3
 * Created by jensk on 4-9-2017.
4
 */
5
6
namespace CloudControl\Cms\components\cms\document {
7
8
9
    use CloudControl\Cms\cc\Request;
10
    use CloudControl\Cms\components\cms\CmsConstants;
11
    use CloudControl\Cms\components\cms\CmsRouting;
12
    use CloudControl\Cms\components\CmsComponent;
13
14
    class FolderRouting extends CmsRouting
15
    {
16
17
        protected static $routes = array(
18
            '/documents/new-folder' => 'newFolderRoute',
19
            '/documents/edit-folder' => 'editFolderRoute',
20
            '/documents/delete-folder' => 'deleteFolderRoute',
21
        );
22
23
        /**
24
         * CmsRouting constructor.
25
         *
26
         * @param Request $request
27
         * @param string $relativeCmsUri
28
         * @param CmsComponent $cmsComponent
29
         * @throws \Exception
30
         */
31
        public function __construct(Request $request, $relativeCmsUri, CmsComponent $cmsComponent)
32
        {
33
            $this->doRouting($request, $relativeCmsUri, $cmsComponent);
34
        }
35
36
        /**
37
         * @param Request $request
38
         * @param CmsComponent $cmsComponent
39
         * @throws \Exception
40
         */
41
        protected function newFolderRoute($request, $cmsComponent)
42
        {
43
            $cmsComponent->subTemplate = 'documents/folder-form';
44
            $cmsComponent->setParameter(CmsConstants::PARAMETER_MAIN_NAV_CLASS, CmsConstants::PARAMETER_DOCUMENTS);
45
            $path = $request::$get[CmsConstants::GET_PARAMETER_PATH];
46
            if (isset($request::$post[CmsConstants::POST_PARAMETER_TITLE], $path)) {
47
                $cmsComponent->storage->getDocuments()->addDocumentFolder($request::$post);
48
                $cmsComponent->storage->getActivityLog()->add('created folder ' . $request::$post[CmsConstants::POST_PARAMETER_TITLE] . ' in path ' . $path,
49
                    'plus');
50
                header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsConstants::PARAMETER_CMS_PREFIX) . '/documents?path=' . $path);
51
                exit;
52
            }
53
        }
54
55
        /**
56
         * @param Request $request
57
         * @param CmsComponent $cmsComponent
58
         * @throws \Exception
59
         */
60
        protected function editFolderRoute($request, $cmsComponent)
61
        {
62
            $cmsComponent->subTemplate = 'documents/folder-form';
63
            $folder = $cmsComponent->storage->getDocuments()->getDocumentFolderBySlug($request::$get[CmsConstants::GET_PARAMETER_SLUG]);
64
65
            $path = $request::$get[CmsConstants::GET_PARAMETER_SLUG];
66
            $path = explode('/', $path);
67
            array_pop($path);
68
            $path = implode('/', $path);
69
70
            $request::$get[CmsConstants::GET_PARAMETER_PATH] = '/' . $path;
71
72
            if (isset($request::$post[CmsConstants::POST_PARAMETER_TITLE], $request::$post['content'])) {
73
                $cmsComponent->storage->getDocuments()->addDocumentFolder($request::$post);
74
                $cmsComponent->storage->getActivityLog()->add('edited folder ' . $request::$post[CmsConstants::POST_PARAMETER_TITLE] . ' in path ' . $request::$get[CmsConstants::GET_PARAMETER_PATH],
75
                    'pencil');
76
                header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsConstants::PARAMETER_CMS_PREFIX) . '/documents');
77
                exit;
78
            }
79
80
            $cmsComponent->setParameter(CmsConstants::PARAMETER_MAIN_NAV_CLASS, CmsConstants::PARAMETER_DOCUMENTS);
81
            $cmsComponent->setParameter(CmsConstants::PARAMETER_FOLDER, $folder);
82
        }
83
84
        /**
85
         * @param Request $request
86
         * @param CmsComponent $cmsComponent
87
         * @throws \Exception
88
         */
89
        protected function deleteFolderRoute($request, $cmsComponent)
90
        {
91
            $cmsComponent->storage->getDocuments()->deleteDocumentFolderBySlug($request::$get[CmsConstants::GET_PARAMETER_SLUG]);
92
            $cmsComponent->storage->getActivityLog()->add('deleted folder /' . $request::$get[CmsConstants::GET_PARAMETER_SLUG],
93
                'trash');
94
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsConstants::PARAMETER_CMS_PREFIX) . '/documents?folder-delete');
95
            exit;
96
        }
97
    }
98
}