* delete data * @param int $datasetId * @param $dimension1 * @param $dimension2 * @param string|null $user_id * @return bool * @throws Exception */
(int $datasetId, $dimension1, $dimension2, ?string $user_id = null)
| 177 | * @throws Exception |
| 178 | */ |
| 179 | public function delete(int $datasetId, $dimension1, $dimension2, ?string $user_id = null) |
| 180 | { |
| 181 | if ($user_id) $this->userId = $user_id; |
| 182 | |
| 183 | $sql = $this->db->getQueryBuilder(); |
| 184 | $sql->delete(self::TABLE_NAME) |
| 185 | ->where($sql->expr()->eq('user_id', $sql->createNamedParameter($this->userId))) |
| 186 | ->andWhere($sql->expr()->eq('dataset', $sql->createNamedParameter($datasetId))); |
| 187 | |
| 188 | // a %(*) does not work for null columns. in case it is just %, don't apply the where clause at all |
| 189 | if ($dimension1 !== '*') { |
| 190 | $dimension1 = str_replace('*', '%', $dimension1); |
| 191 | $sql->andWhere($sql->expr()->like('dimension1', $sql->createNamedParameter($dimension1))); |
| 192 | } |
| 193 | if ($dimension2 !== '*') { |
| 194 | $dimension2 = str_replace('*', '%', $dimension2); |
| 195 | $sql->andWhere($sql->expr()->like('dimension2', $sql->createNamedParameter($dimension2))); |
| 196 | } |
| 197 | |
| 198 | $sql->executeStatement(); |
| 199 | return true; |
| 200 | } |
| 201 | |
| 202 | /** |
| 203 | * Simulate delete data |
no outgoing calls
no test coverage detected