diff options
Diffstat (limited to 'Digitigrade/Job')
| -rw-r--r-- | Digitigrade/Job/RefreshOutboundAuthToken.php | 29 | ||||
| -rw-r--r-- | Digitigrade/Job/RequestOutboundAuthToken.php | 28 | ||||
| -rw-r--r-- | Digitigrade/Job/UpdateInstanceInfo.php | 5 |
3 files changed, 62 insertions, 0 deletions
diff --git a/Digitigrade/Job/RefreshOutboundAuthToken.php b/Digitigrade/Job/RefreshOutboundAuthToken.php new file mode 100644 index 0000000..588617f --- /dev/null +++ b/Digitigrade/Job/RefreshOutboundAuthToken.php @@ -0,0 +1,29 @@ +<?php +namespace Digitigrade\Job; + +use Digitigrade\Job; +use Digitigrade\JobQueue; +use Digitigrade\Logger; +use Digitigrade\Model\Instance; + +class RefreshOutboundAuthToken extends Job { + public string $domain; + public string $token; + public \DateTimeInterface $when; + + public function __construct(string $domain, \DateTimeInterface $when) { + $this->domain = $domain; + $this->when = $when; + $this->remainingTries = 5; + } + + public function run() { + Logger::getInstance()->info("refreshing outbound token for $this->domain"); + $instance = Instance::findByDomain($this->domain); + $instance->refreshOutboundAuthToken(); + } + + public function submit() { + JobQueue::getInstance()->submitDelayedUntil($this, $this->when); + } +}
\ No newline at end of file diff --git a/Digitigrade/Job/RequestOutboundAuthToken.php b/Digitigrade/Job/RequestOutboundAuthToken.php new file mode 100644 index 0000000..69430c8 --- /dev/null +++ b/Digitigrade/Job/RequestOutboundAuthToken.php @@ -0,0 +1,28 @@ +<?php +namespace Digitigrade\Job; + +use Digitigrade\Job; +use Digitigrade\JobQueue; +use Digitigrade\Logger; +use Digitigrade\Model\Instance; + +class RequestOutboundAuthToken extends Job { + public string $domain; + public string $secret; + + public function __construct(string $domain, string $secret) { + $this->domain = $domain; + $this->secret = $secret; + $this->remainingTries = 1; + } + + public function run() { + Logger::getInstance()->info("responding to $this->domain's dialback challenge"); + $instance = Instance::findByDomain($this->domain); + $instance->requestOutboundAuthToken($this->secret); + } + + public function submit() { + JobQueue::getInstance()->submitUrgent($this); + } +}
\ No newline at end of file diff --git a/Digitigrade/Job/UpdateInstanceInfo.php b/Digitigrade/Job/UpdateInstanceInfo.php index 85c11f0..abcd182 100644 --- a/Digitigrade/Job/UpdateInstanceInfo.php +++ b/Digitigrade/Job/UpdateInstanceInfo.php @@ -2,6 +2,7 @@ namespace Digitigrade\Job; use Digitigrade\Job; +use Digitigrade\JobQueue; use Digitigrade\Logger; use Digitigrade\Model\Instance; @@ -19,4 +20,8 @@ class UpdateInstanceInfo extends Job { throw new \RuntimeException("remote object doesn't seem to exist"); } } + + public function submit() { + JobQueue::getInstance()->submitLazy($this); + } }
\ No newline at end of file |
