InMemoryAlbumAdapter::findHidden()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 8
rs 9.4285
c 1
b 0
f 0
cc 2
eloc 4
nc 2
nop 1
1
<?php
2
3
namespace JeroenG\LaravelPhotoGallery\Adapters\InMemory;
4
5
use Illuminate\Support\Collection;
6
use JeroenG\LaravelPhotoGallery\Contracts\Album;
7
use JeroenG\LaravelPhotoGallery\Contracts\AlbumAdapter;
8
9
class InMemoryAlbumAdapter implements AlbumAdapter
10
{
11
    private $albums;
12
    private $hiddenAlbums;
13
14
    public function all()
15
    {
16
        return Collection::make($this->albums)->keyBy('id');
17
    }
18
19
    public function find($id)
20
    {
21
        if(isset($this->albums[$id]))
22
        {
23
            return $this->albums[$id];
24
        }
25
        return false;
26
    }
27
28
    public function findHidden($id)
29
    {
30
        if(isset($this->hiddenAlbums[$id]))
31
        {
32
            return $this->hiddenAlbums[$id];
33
        }
34
        return false;
35
    }
36
37
    public function findByAttribute(array $attribute)
38
    {
39
        $results = [];
40
        
41
        foreach ($attribute as $att => $value) {
42
            foreach ($this->albums as $album) {
43
                if($album->metadataContains($att) && $album->getMetadata($att) == $value) {
44
                    $results[] = $album;
45
                }
46
            }
47
        }
48
        return Collection::make($results)->keyBy('id');
49
    }
50
51
    public function add(Album $album)
52
    {
53
        return $this->albums[$album->getId()] = $album;
54
    }
55
56
    public function save(Album $album)
57
    {
58
        return $this->albums[$album->getId()] = $album;
59
    }
60
61
    public function update(Album $album)
62
    {
63
        return $this->albums[$album->getId()] = $album;
64
    }
65
66
    public function hide(Album $album)
67
    {
68
        $this->hiddenAlbums[$album->getId()] = $album;
69
        unset($this->albums[$album->getId()]);
70
    }
71
    
72
    public function restore(Album $album)
73
    {
74
        $this->albums[$album->getId()] = $album;
75
        unset($this->hiddenAlbums[$album->getId()]);
76
    }
77
78
    public function delete(Album $album)
79
    {
80
        if(isset($this->albums[$album->getId()])) {
81
            unset($this->albums[$album->getId()]);
82
        } elseif(isset($this->hiddenAlbums[$album->getId()])) {
83
            unset($this->hiddenAlbums[$album->getId()]);
84
        }
85
    }
86
}