Completed
Push — master ( e30ecd...13caca )
by
unknown
13s queued 12s
created

CleanupExpiredTokensCronTask   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 4
dl 0
loc 39
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getSchedule() 0 4 1
A process() 0 4 1
A getTokenRepository() 0 4 1
1
<?php
2
3
namespace AdvancedLearning\Cron;
4
5
use AdvancedLearning\Oauth2Server\Repositories\AccessTokenRepository;
6
use Carbon\Carbon;
7
use SilverStripe\Core\Config\Configurable;
8
use SilverStripe\Core\Injector\Injector;
9
use SilverStripe\CronTask\Interfaces\CronTask;
10
use SilverStripe\ORM\DB;
11
12
class CleanupExpiredTokensCronTask implements CronTask
13
{
14
    use Configurable;
15
16
    /**
17
     * Number of days to delete expired tokens.
18
     *
19
     * @var int
20
     */
21
    private static $age = 7;
22
23
    /**
24
     * Run at 1am every day.
25
     *
26
     * @return string
27
     */
28
    public function getSchedule()
29
    {
30
        return '0 1 * * *';
31
    }
32
33
    /**
34
     * Delete tokens which have expired more than $age days.
35
     */
36
    public function process()
37
    {
38
        $this->getTokenRepository()->deleteExpiredTokens(self::config()->get('age'));
39
    }
40
41
    /**
42
     * Get the repository for managing access tokens.
43
     *
44
     * @return AccessTokenRepository
45
     */
46
    protected function getTokenRepository(): AccessTokenRepository
47
    {
48
        return Injector::inst()->get(AccessTokenRepository::class);
49
    }
50
}
51