Skip to content

Commit

Permalink
Remove IUserGetter interface, use UserEventInterface
Browse files Browse the repository at this point in the history
IUserGetter was deprecated in version 2.3 (Feb 2023)
https://github.com/remp2020/crm-users-module/releases/tag/2.3.0

Use UserEventInterface instead (method `getUserId(): int` replaced
by `getUser(): ActiveRow`.

remp/crm#3313
  • Loading branch information
markoph committed Oct 25, 2024
1 parent 49b60af commit 87a1cfe
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 70 deletions.
18 changes: 8 additions & 10 deletions src/Events/RefreshUserDataTokenHandler.php
Original file line number Diff line number Diff line change
@@ -1,28 +1,26 @@
<?php

declare(strict_types=1);

namespace Crm\UsersModule\Events;

use Crm\UsersModule\Models\User\IUserGetter;
use Crm\UsersModule\Models\User\UserData;
use League\Event\AbstractListener;
use League\Event\EventInterface;

class RefreshUserDataTokenHandler extends AbstractListener
{
private $userData;

public function __construct(UserData $userData)
{
$this->userData = $userData;
public function __construct(
private UserData $userData,
) {
}

public function handle(EventInterface $event)
{
if (!($event instanceof IUserGetter)) {
throw new \Exception('cannot handle event, invalid instance received: ' . gettype($event));
if (!($event instanceof UserEventInterface)) {
throw new \Exception('Invalid type of event received, `UserEventInterface` expected, but got ' . gettype($event));
}

$userId = $event->getUserId();
$this->userData->refreshUserTokens($userId);
$this->userData->refreshUserTokens($event->getUser()->id);
}
}
30 changes: 13 additions & 17 deletions src/Events/UserMetaEvent.php
Original file line number Diff line number Diff line change
@@ -1,36 +1,32 @@
<?php

declare(strict_types=1);

namespace Crm\UsersModule\Events;

use Crm\UsersModule\Models\User\IUserGetter;
use League\Event\AbstractEvent;
use Nette\Database\Table\ActiveRow;

class UserMetaEvent extends AbstractEvent implements IUserGetter
class UserMetaEvent extends AbstractEvent implements UserEventInterface
{
private $userId;

private $key;

private $value;

public function __construct(int $userId, $key, $value)
{
$this->userId = $userId;
$this->key = $key;
$this->value = $value;
public function __construct(
private ActiveRow $user,
private string $key,
private string $value,
) {
}

public function getUserId(): int
public function getUser(): ActiveRow
{
return $this->userId;
return $this->user;
}

public function getKey()
public function getKey(): string
{
return $this->key;
}

public function getValue()
public function getValue(): string
{
return $this->value;
}
Expand Down
25 changes: 9 additions & 16 deletions src/Events/UserSuspiciousEvent.php
Original file line number Diff line number Diff line change
@@ -1,32 +1,25 @@
<?php

declare(strict_types=1);

namespace Crm\UsersModule\Events;

use Crm\UsersModule\Models\User\IUserGetter;
use League\Event\AbstractEvent;
use Nette\Database\Table\ActiveRow;

class UserSuspiciousEvent extends AbstractEvent implements IUserGetter
class UserSuspiciousEvent extends AbstractEvent implements UserEventInterface
{
private $user;

private $newPassword;

public function __construct($user, string $newPassword)
{
$this->user = $user;
$this->newPassword = $newPassword;
public function __construct(
private ActiveRow $user,
private string $newPassword,
) {
}

public function getUser()
public function getUser(): ActiveRow
{
return $this->user;
}

public function getUserId(): int
{
return $this->user->id;
}

public function getNewPassword(): string
{
return $this->newPassword;
Expand Down
21 changes: 8 additions & 13 deletions src/Events/UserUpdatedEvent.php
Original file line number Diff line number Diff line change
@@ -1,26 +1,21 @@
<?php

declare(strict_types=1);

namespace Crm\UsersModule\Events;

use Crm\UsersModule\Models\User\IUserGetter;
use League\Event\AbstractEvent;
use Nette\Database\Table\ActiveRow;

class UserUpdatedEvent extends AbstractEvent implements IUserGetter
class UserUpdatedEvent extends AbstractEvent implements UserEventInterface
{
private $user;

public function __construct($user)
{
$this->user = $user;
public function __construct(
private ActiveRow $user,
) {
}

public function getUser()
public function getUser(): ActiveRow
{
return $this->user;
}

public function getUserId(): int
{
return $this->user->id;
}
}
2 changes: 1 addition & 1 deletion src/Events/UserUpdatedHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public function __construct(
public function handle(EventInterface $event)
{
if (!($event instanceof UserUpdatedEvent)) {
throw new \Exception('cannot handle event, invalid instance received: ' . gettype($event));
throw new \Exception('Invalid type of event received, `UserUpdatedEvent` expected, but got ' . gettype($event));
}
$updatedUser = $event->getUser();

Expand Down
11 changes: 0 additions & 11 deletions src/Models/User/IUserGetter.php

This file was deleted.

4 changes: 2 additions & 2 deletions src/Repositories/UserMetaRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ final public function add(ActiveRow $user, $key, $value, ?DateTime $createdAt =
$result = $this->getTable()->where(['user_id' => $user, 'key' => $key])
->update(['value' => $value, 'updated_at' => new DateTime(), 'is_public' => $isPublic]);
if ($result) {
$this->emitter->emit(new UserMetaEvent($user->id, $key, $value));
$this->emitter->emit(new UserMetaEvent($user, $key, $value));
}

return $this->getTable()->where(['user_id' => $user, 'key' => $key])->fetch();
Expand All @@ -49,7 +49,7 @@ final public function add(ActiveRow $user, $key, $value, ?DateTime $createdAt =
'updated_at' => new DateTime(),
]);
if ($result) {
$this->emitter->emit(new UserMetaEvent($user->id, $key, $value));
$this->emitter->emit(new UserMetaEvent($user, $key, $value));
}
return $result;
}
Expand Down

0 comments on commit 87a1cfe

Please sign in to comment.