DepartmentHandler::getNameById()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
c 0
b 0
f 0
nc 2
nop 1
dl 0
loc 8
rs 10
1
<?php declare(strict_types=1);
2
3
namespace XoopsModules\Xhelp;
4
5
/*
6
 * You may not change or alter any portion of this comment or credits
7
 * of supporting developers from this source code or any supporting source code
8
 * which is considered copyrighted (c) material of the original comment or credit authors.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
 */
14
15
/**
16
 * @copyright    {@link https://xoops.org/ XOOPS Project}
17
 * @license      {@link https://www.gnu.org/licenses/gpl-2.0.html GNU GPL 2 or later}
18
 * @author       Eric Juden <[email protected]>
19
 * @author       XOOPS Development Team
20
 */
21
22
if (!\defined('XHELP_CLASS_PATH')) {
23
    exit();
24
}
25
26
// require_once XHELP_CLASS_PATH . '/BaseObjectHandler.php';
27
28
/**
29
 * DepartmentHandler class
30
 *
31
 * Department Handler for Department class
32
 *
33
 * @author  Eric Juden <[email protected]> &
34
 */
35
class DepartmentHandler extends BaseObjectHandler
36
{
37
    /**
38
     * Name of child class
39
     *
40
     * @var string
41
     */
42
    public $classname = Department::class;
43
//    public $classname;
44
    /**
45
     * DB table name
46
     *
47
     * @var string
48
     */
49
    public $dbtable = 'xhelp_departments';
50
51
    private const TABLE = 'xhelp_departments';
52
    private const ENTITY = Department::class;
53
    private const ENTITYNAME = 'Department';
54
    private const KEYNAME = 'id';
55
    private const IDENTIFIER = 'department';
56
57
    /**
58
     * Constructor
59
     *
60
     * @param \XoopsMySQLDatabase|null $db reference to a xoopsDB object
61
     */
62
    public function __construct(\XoopsMySQLDatabase $db = null)
63
    {
64
        $this->init($db);
65
        $this->helper = Helper::getInstance();
66
        parent::__construct($db, static::TABLE, static::ENTITY, static::KEYNAME, static::IDENTIFIER);
67
68
//        parent::__construct($db, 'xhelp_departments', Department::class, 'id', 'id');
69
//        $this->classname = Department::class;
70
    }
71
72
    /**
73
     * @param int $id
74
     * @return string
75
     */
76
    public function getNameById(int $id): string
77
    {
78
        $tmp = $this->get($id);
79
        if ($tmp) {
0 ignored issues
show
introduced by
$tmp is of type XoopsObject, thus it always evaluated to true.
Loading history...
80
            return $tmp->getVar('department');
81
        }
82
83
        return \_XHELP_TEXT_NO_DEPT;
84
    }
85
86
    /**
87
     * @param \XoopsObject $object
88
     * @return string
89
     */
90
    public function insertQuery(\XoopsObject $object): string
91
    {
92
        //TODO mb replace with individual variables
93
        // Copy all object vars into local variables
94
        foreach ($object->cleanVars as $k => $v) {
95
            ${$k} = $v;
96
        }
97
98
        $sql = \sprintf('INSERT INTO `%s` (id, department) VALUES (%u, %s)', $this->db->prefix($this->dbtable), $id, $this->db->quoteString($department));
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $department seems to be never defined.
Loading history...
Comprehensibility Best Practice introduced by
The variable $id seems to be never defined.
Loading history...
99
100
        return $sql;
101
    }
102
103
    /**
104
     * @param \XoopsObject $object
105
     * @return string
106
     */
107
    public function updateQuery(\XoopsObject $object): string
108
    {
109
        //TODO mb replace with individual variables
110
        // Copy all object vars into local variables
111
        foreach ($object->cleanVars as $k => $v) {
112
            ${$k} = $v;
113
        }
114
115
        $sql = \sprintf('UPDATE `%s` SET department = %s WHERE id = %u', $this->db->prefix($this->dbtable), $this->db->quoteString($department), $id);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $department seems to be never defined.
Loading history...
Comprehensibility Best Practice introduced by
The variable $id seems to be never defined.
Loading history...
116
117
        return $sql;
118
    }
119
120
    /**
121
     * @param \XoopsObject $object
122
     * @return string
123
     */
124
    public function deleteQuery(\XoopsObject $object): string
125
    {
126
        $sql = \sprintf('DELETE FROM `%s` WHERE id = %u', $this->db->prefix($this->dbtable), $object->getVar('id'));
0 ignored issues
show
Bug introduced by
It seems like $object->getVar('id') can also be of type array and array; however, parameter $values of sprintf() does only seem to accept double|integer|string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

126
        $sql = \sprintf('DELETE FROM `%s` WHERE id = %u', $this->db->prefix($this->dbtable), /** @scrutinizer ignore-type */ $object->getVar('id'));
Loading history...
127
128
        return $sql;
129
    }
130
}
131