triggerPasswordRequestNotFound()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
nc 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SixtyEightPublishers\User\ForgotPassword\UI;
6
7
use Nette\InvalidStateException;
8
use Nette\Application\BadRequestException;
9
use SixtyEightPublishers\User\ForgotPassword\Entity\PasswordRequestInterface;
10
use SixtyEightPublishers\User\ForgotPassword\Exception\PasswordRequestProcessException;
11
use SixtyEightPublishers\User\ForgotPassword\Control\ResetPassword\ResetPasswordControl;
12
use SixtyEightPublishers\User\ForgotPassword\PasswordRequest\PasswordRequestManagerInterface;
13
use SixtyEightPublishers\User\ForgotPassword\Control\ResetPassword\ResetPasswordControlFactoryInterface;
14
15
trait ResetPasswordPresenterTrait
16
{
17
	/** @var NULL|\SixtyEightPublishers\User\ForgotPassword\PasswordRequest\PasswordRequestManagerInterface */
18
	private $passwordRequestManager;
19
20
	/** @var NULL|\SixtyEightPublishers\User\ForgotPassword\Control\ResetPassword\ResetPasswordControlFactoryInterface */
21
	public $resetPasswordControlFactory;
22
23
	/** @var NULL|\SixtyEightPublishers\User\ForgotPassword\Entity\PasswordRequestInterface */
24
	private $passwordRequest;
25
26
	/**
27
	 * @internal
28
	 *
29
	 * @param \SixtyEightPublishers\User\ForgotPassword\PasswordRequest\PasswordRequestManagerInterface $passwordRequestManager
30
	 *
31
	 * @return void
32
	 */
33
	public function injectPasswordRequestManager(PasswordRequestManagerInterface $passwordRequestManager): void
34
	{
35
		$this->passwordRequestManager = $passwordRequestManager;
36
	}
37
38
	/**
39
	 * @internal
40
	 *
41
	 * @param \SixtyEightPublishers\User\ForgotPassword\Control\ResetPassword\ResetPasswordControlFactoryInterface $resetPasswordControlFactory
42
	 *
43
	 * @return void
44
	 */
45
	public function injectResetPasswordControlFactory(ResetPasswordControlFactoryInterface $resetPasswordControlFactory): void
46
	{
47
		$this->resetPasswordControlFactory = $resetPasswordControlFactory;
48
	}
49
50
	/**
51
	 * @param string $uid User UUID
52
	 * @param string $rid PasswordRequest UUID
53
	 *
54
	 * @return void
55
	 * @throws \Nette\Application\BadRequestException
56
	 */
57
	public function actionDefault(string $uid, string $rid): void
58
	{
59
		try {
60
			$this->passwordRequest = $this->passwordRequestManager->findRequest($uid, $rid);
61
		} catch (PasswordRequestProcessException $e) {
62
			$this->triggerPasswordRequestNotFound($e);
63
64
			throw new BadRequestException();
65
		}
66
	}
67
68
	/**
69
	 * @param \SixtyEightPublishers\User\ForgotPassword\Exception\PasswordRequestProcessException $e
70
	 *
71
	 * @return void
72
	 */
73
	abstract protected function triggerPasswordRequestNotFound(PasswordRequestProcessException $e): void;
74
75
	/**
76
	 * @return \SixtyEightPublishers\User\ForgotPassword\Control\ResetPassword\ResetPasswordControl
77
	 */
78
	protected function createResetPasswordControl(): ResetPasswordControl
79
	{
80
		if (!$this->passwordRequest instanceof PasswordRequestInterface) {
81
			throw new InvalidStateException('Password Request is not set.');
82
		}
83
84
		return $this->resetPasswordControlFactory->create($this->passwordRequest);
85
	}
86
}
87