Passed
Push — master ( 3660fa...998d5d )
by Marcel
03:22
created

ThresholdMapper::deleteThresholdByDataset()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 6
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 8
rs 10
1
<?php
2
/**
3
 * Analytics
4
 *
5
 * This file is licensed under the Affero General Public License version 3 or
6
 * later. See the LICENSE.md file.
7
 *
8
 * @author Marcel Scherello <[email protected]>
9
 * @copyright 2020 Marcel Scherello
10
 */
11
12
namespace OCA\Analytics\Db;
13
14
use OCP\IDBConnection;
15
use OCP\IL10N;
16
use OCP\ILogger;
17
18
class ThresholdMapper
19
{
20
    private $userId;
21
    private $l10n;
22
    private $db;
23
    private $logger;
24
    const TABLE_NAME = 'analytics_threshold';
25
26
    public function __construct(
27
        $userId,
28
        IL10N $l10n,
29
        IDBConnection $db,
30
        ILogger $logger
31
    )
32
    {
33
        $this->userId = $userId;
34
        $this->l10n = $l10n;
35
        $this->db = $db;
36
        $this->logger = $logger;
37
        self::TABLE_NAME;
38
    }
39
40
    public function createThreshold($datasetId, $dimension1, $value, $option, $serverity)
41
    {
42
        $sql = $this->db->getQueryBuilder();
43
        $sql->insert(self::TABLE_NAME)
44
            ->values([
45
                'user_id' => $sql->createNamedParameter($this->userId),
46
                'dataset' => $sql->createNamedParameter($datasetId),
47
                'dimension1' => $sql->createNamedParameter($dimension1),
48
                'value' => $sql->createNamedParameter($value),
49
                'option' => $sql->createNamedParameter($option),
50
                'severity' => $sql->createNamedParameter($serverity),
51
            ]);
52
        $sql->execute();
53
        return (int)$this->db->lastInsertId(self::TABLE_NAME);
54
    }
55
56
    public function getThresholdsByDataset($datasetId)
57
    {
58
        $sql = $this->db->getQueryBuilder();
59
        $sql->from(self::TABLE_NAME)
60
            ->select('id')
61
            ->addSelect('dimension1')
62
            ->addSelect('dimension2')
63
            ->addSelect('value')
64
            ->addSelect('option')
65
            ->addSelect('severity')
66
            ->where($sql->expr()->eq('dataset', $sql->createNamedParameter($datasetId)))
67
            ->andWhere($sql->expr()->eq('dataset', $sql->createNamedParameter($datasetId)));
68
        $statement = $sql->execute();
69
        $result = $statement->fetchAll();
70
        $statement->closeCursor();
71
        return $result;
72
    }
73
74
    public function getSevOneThresholdsByDataset($datasetId)
75
    {
76
        $sql = $this->db->getQueryBuilder();
77
        $sql->from(self::TABLE_NAME)
78
            ->select('*')
79
            ->where($sql->expr()->eq('dataset', $sql->createNamedParameter($datasetId)))
80
            ->andWhere($sql->expr()->eq('severity', $sql->createNamedParameter('1')));
81
        $statement = $sql->execute();
82
        $result = $statement->fetchAll();
83
        $statement->closeCursor();
84
        return $result;
85
    }
86
87
    public function deleteThreshold($thresholdId)
88
    {
89
        $sql = $this->db->getQueryBuilder();
90
        $sql->delete(self::TABLE_NAME)
91
            ->where($sql->expr()->eq('id', $sql->createNamedParameter($thresholdId)))
92
            ->andWhere($sql->expr()->eq('user_id', $sql->createNamedParameter($this->userId)));
93
        $sql->execute();
94
        return true;
95
    }
96
}