diff options
Diffstat (limited to 'Digitigrade/Job/ExpireInboundAuthToken.php')
| -rw-r--r-- | Digitigrade/Job/ExpireInboundAuthToken.php | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Digitigrade/Job/ExpireInboundAuthToken.php b/Digitigrade/Job/ExpireInboundAuthToken.php new file mode 100644 index 0000000..dfb5ae6 --- /dev/null +++ b/Digitigrade/Job/ExpireInboundAuthToken.php @@ -0,0 +1,34 @@ +<?php +namespace Digitigrade\Job; + +use Digitigrade\Job; +use Digitigrade\JobQueue; +use Digitigrade\Logger; +use Digitigrade\Model\Instance; + +class ExpireInboundAuthToken extends Job { + public string $domain; + public string $token; + public \DateTimeInterface $when; + + public function __construct(string $domain, string $token, \DateTimeInterface $when) { + $this->domain = $domain; + $this->token = $token; + $this->when = $when; + $this->remainingTries = 5; + } + + public function run() { + Logger::getInstance()->info("expiring token for $this->domain"); + $instance = Instance::findByDomain($this->domain); + if ($instance->auth->inboundToken != $this->token) { + Logger::getInstance()->info("actually not expiring the token because it's been refreshed"); + return; + } + $instance->auth->inboundToken = null; + } + + public function submit() { + JobQueue::getInstance()->submitDelayedUntil($this, $this->when); + } +}
\ No newline at end of file |
