aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Job/ExpireInboundAuthToken.php
diff options
context:
space:
mode:
Diffstat (limited to 'Digitigrade/Job/ExpireInboundAuthToken.php')
-rw-r--r--Digitigrade/Job/ExpireInboundAuthToken.php34
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