ValuelistsStorage   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 85
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 85
rs 10
c 0
b 0
f 0
wmc 11

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getValuelists() 0 3 1
A addValuelist() 0 8 1
A saveValuelist() 0 12 3
A getValuelistBySlug() 0 10 3
A deleteValuelistBySlug() 0 11 3
1
<?php
2
/**
3
 * User: Jens
4
 * Date: 8-6-2017
5
 * Time: 14:18
6
 */
7
8
namespace CloudControl\Cms\storage\storage;
9
10
11
use CloudControl\Cms\storage\factories\ValuelistFactory;
12
13
class ValuelistsStorage extends AbstractStorage
14
{
15
    /**
16
     * Get all valuelists
17
     *
18
     * @return mixed
19
     */
20
    public function getValuelists()
21
    {
22
        return $this->repository->valuelists;
23
    }
24
25
    /**
26
     * @param $postValues
27
     * @return string slug
28
     */
29
    public function addValuelist($postValues)
30
    {
31
        $valueListObject = ValuelistFactory::createValuelistFromPostValues($postValues);
32
        $valuelists = $this->repository->valuelists;
33
        $valuelists[] = $valueListObject;
34
        $this->repository->valuelists = $valuelists;
35
        $this->save();
36
        return $valueListObject->slug;
37
    }
38
39
    /**
40
     * Save changes to a valuelist
41
     *
42
     * @param $slug
43
     * @param $postValues
44
     *
45
     * @throws \Exception
46
     */
47
    public function saveValuelist($slug, $postValues)
48
    {
49
        $valuelistObject = ValuelistFactory::createValuelistFromPostValues($postValues);
50
51
        $valuelists = $this->repository->valuelists;
52
        foreach ($valuelists as $key => $valuelist) {
53
            if ($valuelist->slug == $slug) {
54
                $valuelists[$key] = $valuelistObject;
55
            }
56
        }
57
        $this->repository->valuelists = $valuelists;
58
        $this->save();
59
    }
60
61
    /**
62
     * Get a valuelist by its slug
63
     *
64
     * @param $slug
65
     *
66
     * @return \stdClass
67
     */
68
    public function getValuelistBySlug($slug)
69
    {
70
        $valuelists = $this->repository->valuelists;
71
        foreach ($valuelists as $valuelist) {
72
            if ($valuelist->slug == $slug) {
73
                return $valuelist;
74
            }
75
        }
76
77
        return null;
78
    }
79
80
    /**
81
     * Delete a sitemap item by its slug
82
     *
83
     * @param $slug
84
     *
85
     * @throws \Exception
86
     */
87
    public function deleteValuelistBySlug($slug)
88
    {
89
        $valuelists = $this->repository->valuelists;
90
        foreach ($valuelists as $key => $valuelist) {
91
            if ($valuelist->slug == $slug) {
92
                unset($valuelists[$key]);
93
            }
94
        }
95
        $valuelists = array_values($valuelists);
96
        $this->repository->valuelists = $valuelists;
97
        $this->save();
98
    }
99
}