Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
Link
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
3 / 3
11
100.00% covered (success)
100.00%
1 / 1
 readByDepartmentId
100.00% covered (success)
100.00%
16 / 16
100.00% covered (success)
100.00%
1 / 1
8
 writeEntity
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
2
 deleteEntity
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace BO\Zmsdb;
4
5use BO\Zmsdb\Application as App;
6use BO\Zmsentities\Link as Entity;
7use BO\Zmsentities\Collection\LinkList as Collection;
8
9class Link extends Base
10{
11    /**
12     * Fetch status from db
13     *
14     * @return \BO\Zmsentities\Collection\LinkList
15     */
16    public function readByDepartmentId($departmentId, $disableCache = false)
17    {
18        $cacheKey = "linksReadByDepartmentId-$departmentId";
19
20        if (!$disableCache && App::$cache && App::$cache->has($cacheKey)) {
21            return App::$cache->get($cacheKey);
22        }
23
24        $linkList = new Collection();
25        $query = new Query\Link(Query\Base::SELECT);
26        $query
27            ->addEntityMapping()
28            ->addConditionDepartmentId($departmentId);
29        $result = $this->fetchList($query, new Entity());
30        if (count($result)) {
31            foreach ($result as $entity) {
32                if ($entity instanceof Entity) {
33                    $linkList->addEntity($entity);
34                }
35            }
36        }
37
38        if (App::$cache) {
39            App::$cache->set($cacheKey, $linkList);
40        }
41
42        return $linkList;
43    }
44
45    /**
46     * write a link
47     *
48     * @param \BO\Zmsentities\Ticketprinter $entity
49     * @param int $organisationId
50     *
51     * @return Entity
52     */
53    public function writeEntity(Entity $entity, $departmentId)
54    {
55        $query = new Query\Link(Query\Base::INSERT);
56        $values = $query->reverseEntityMapping($entity, $departmentId);
57        $query->addValues($values);
58
59        if (App::$cache) {
60            App::$cache->delete("linksReadByDepartmentId-$departmentId");
61        }
62
63        return $this->writeItem($query);
64    }
65
66    public function deleteEntity($itemId)
67    {
68        $query = new Query\Link(Query\Base::DELETE);
69        $query->addConditionLinkId($itemId);
70        return ($this->deleteItem($query));
71    }
72}