ILIAS
trunk Revision v11.0_alpha-3011-gc6b235a2e85
◀ ilDoc Overview
PushRepository.php
Go to the documentation of this file.
1
<?php
2
19
declare(strict_types=1);
20
21
namespace
ILIAS\Notifications\Repository
;
22
23
use
ilDBConstants
;
24
use
ilDBInterface
;
25
use
ILIAS\Notifications\Model\Push\PushSubscription
;
26
use
ilObjUser
;
27
28
readonly
class
PushRepository
29
{
30
public
function
__construct
(
private
ilDBInterface
$database,
private
ilObjUser
$user)
31
{
32
}
33
34
public
function
addSubscription
(
PushSubscription
$subscription): void
35
{
36
$this->
database
->insert(
37
'push_subscriptions'
,
38
[
39
'endpoint'
=> [
ilDBConstants::T_TEXT
, $subscription->
getEndpoint
()],
40
'user_id'
=> [
ilDBConstants::T_INTEGER
, $this->user->getId()],
41
'p256dh'
=> [
ilDBConstants::T_TEXT
, $subscription->
getP256dh
()],
42
'auth'
=> [
ilDBConstants::T_TEXT
, $subscription->
getAuth
()],
43
]
44
);
45
}
46
47
public
function
deleteSubscription
(
string
$auth): void
48
{
49
$this->
database
->manipulateF(
'DELETE FROM push_subscriptions WHERE auth = %s'
, [
ilDBConstants::T_TEXT
], [$auth]);
50
}
51
55
public
function
getUserSubscriptions
(?
int
$user_id
=
null
): array
56
{
57
$stmt = $this->
database
->queryF(
58
'SELECT * FROM push_subscriptions WHERE user_id = %s'
,
59
[
ilDBConstants::T_INTEGER
],
60
[
$user_id
?? $this->
user
->getId()]
61
);
62
63
$result = [];
64
while
($row = $stmt->fetchAssoc()) {
65
$result[] =
new
PushSubscription
(
66
$row[
'endpoint'
],
67
$row[
'auth'
],
68
$row[
'p256dh'
]
69
);
70
}
71
72
return
$result;
73
}
74
}
ILIAS\Notifications\Model\Push\PushSubscription
Definition:
PushSubscription.php:24
ILIAS\Notifications\Model\Push\PushSubscription\getEndpoint
getEndpoint()
Definition:
PushSubscription.php:32
ILIAS\Notifications\Model\Push\PushSubscription\getP256dh
getP256dh()
Definition:
PushSubscription.php:42
ILIAS\Notifications\Model\Push\PushSubscription\getAuth
getAuth()
Definition:
PushSubscription.php:37
ILIAS\Notifications\Repository\PushRepository
Definition:
PushRepository.php:29
ILIAS\Notifications\Repository\PushRepository\deleteSubscription
deleteSubscription(string $auth)
Definition:
PushRepository.php:47
ILIAS\Notifications\Repository\PushRepository\getUserSubscriptions
getUserSubscriptions(?int $user_id=null)
Definition:
PushRepository.php:55
ILIAS\Notifications\Repository\PushRepository\addSubscription
addSubscription(PushSubscription $subscription)
Definition:
PushRepository.php:34
ILIAS\Notifications\Repository\PushRepository\__construct
__construct(private ilDBInterface $database, private ilObjUser $user)
Definition:
PushRepository.php:30
ilDBConstants
Class ilDBConstants.
Definition:
class.ilDBConstants.php:27
ilDBConstants\T_TEXT
const T_TEXT
Definition:
class.ilDBConstants.php:56
ilDBConstants\T_INTEGER
const T_INTEGER
Definition:
class.ilDBConstants.php:55
ilObjUser
User class.
Definition:
class.ilObjUser.php:46
ilDBInterface
Interface ilDBInterface.
Definition:
interface.ilDBInterface.php:30
ILIAS\Notifications\Repository
Definition:
ilNotificationOSDRepository.php:21
ILIAS\Repository\user
user()
Definition:
trait.GlobalDICDomainServices.php:66
ILIAS\Repository\database
database()
Definition:
trait.GlobalDICDomainServices.php:146
$user_id
int $user_id
Definition:
trait.ilExAssignmentTypeGUIBase.php:38
components
ILIAS
Notifications
classes
Repository
PushRepository.php
Generated on Sat Oct 18 2025 23:03:30 for ILIAS by
1.9.4 (using
Doxyfile
)