All checks were successful
rvr-nextgen/pipeline/pr-master This commit looks good
40 lines
1.3 KiB
PHP
40 lines
1.3 KiB
PHP
<?php namespace RVR\Repository;
|
|
|
|
use DateTime;
|
|
use Generator;
|
|
use SokoWeb\Database\Query\Select;
|
|
use RVR\PersistentData\Model\User;
|
|
use RVR\PersistentData\Model\UserPasswordResetter;
|
|
|
|
class UserPasswordResetterRepository
|
|
{
|
|
public function getById(int $userConfirmationId): ?UserPasswordResetter
|
|
{
|
|
return \Container::$persistentDataManager->selectFromDbById($userConfirmationId, UserPasswordResetter::class);
|
|
}
|
|
|
|
public function getByToken(string $token): ?UserPasswordResetter
|
|
{
|
|
$select = new Select(\Container::$dbConnection);
|
|
$select->where('token', '=', $token);
|
|
|
|
return \Container::$persistentDataManager->selectFromDb($select, UserPasswordResetter::class);
|
|
}
|
|
|
|
public function getByUser(User $user): ?UserPasswordResetter
|
|
{
|
|
$select = new Select(\Container::$dbConnection);
|
|
$select->where('user_id', '=', $user->getId());
|
|
|
|
return \Container::$persistentDataManager->selectFromDb($select, UserPasswordResetter::class);
|
|
}
|
|
|
|
public function getAllExpired(): Generator
|
|
{
|
|
$select = new Select(\Container::$dbConnection);
|
|
$select->where('expires', '<', (new DateTime())->format('Y-m-d H:i:s'));
|
|
|
|
yield from \Container::$persistentDataManager->selectMultipleFromDb($select, UserPasswordResetter::class);
|
|
}
|
|
}
|