aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Job/ExpireInboundAuthToken.php
blob: 84a5b21b9227301a234cb2366065232bfca234b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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::findByHostname($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;
        $instance->auth->save();
    }

    public function submit() {
        JobQueue::getInstance()->submitDelayedUntil($this, $this->when);
    }
}