Completed
Push — 2.0 ( a00819...62c098 )
by Peter
07:50 queued 05:05
created

ExpireResolver::getExpire()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 3

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 12
ccs 6
cts 6
cp 1
rs 9.4285
cc 3
eloc 6
nc 3
nop 2
crap 3
1
<?php
2
/**
3
 * AnimeDb package
4
 *
5
 * @author    Peter Gribanov <[email protected]>
6
 * @copyright Copyright (c) 2011, Peter Gribanov
7
 * @license   http://opensource.org/licenses/GPL-3.0 GPL v3
8
 */
9
namespace AnimeDb\Bundle\AniDbBrowserBundle\Service\Client\Cache;
10
11
/**
12
 * ExpireResolver.
13
 *
14
 * @link http://wiki.anidb.net/w/HTTP_API_Definition
15
 */
16
class ExpireResolver
17
{
18
    /**
19
     * @var array
20
     */
21
    protected $requests = [];
22
23
    /**
24
     * @var string
25
     */
26
    const DEFAULT_MODIFY = '+1 day';
27
28
    /**
29
     * @param array $requests
30
     */
31 8
    public function __construct(array $requests)
32
    {
33 8
        $this->requests = $requests;
34 8
    }
35
36
    /**
37
     * @param string $request
38
     * @param \DateTime $date
39
     *
40
     * @return \DateTime|null
41
     */
42 8
    public function getExpire($request, \DateTime $date)
43
    {
44 8
        if (!array_key_exists($request, $this->requests)) {
45 1
            return $date->modify(self::DEFAULT_MODIFY);
46
        }
47
48 7
        if ($this->requests[$request]) {
49 4
            return $date->modify($this->requests[$request]);
50
        }
51
52 3
        return null;
53
    }
54
}
55