Completed
Push — master ( 631b00...2fe979 )
by Alex
01:43
created

CheckAvailability   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A perform() 0 17 3
1
<?php declare(strict_types=1);
2
3
4
namespace FeedIo\Check;
5
6
use FeedIo\Feed;
7
use FeedIo\FeedIo;
8
9
/**
10
 * Class CheckAvailability
11
 * @codeCoverageIgnore
12
 */
13
class CheckAvailability implements CheckInterface
14
{
15
    public function perform(FeedIo $feedIo, Feed $feed, Result $result): bool
16
    {
17
        try {
18
            $feedIo->read($feed->getUrl(), $feed);
19
            $count = count($feed);
20
            $result->setItemCount($count);
21
            if (0 === $count) {
22
                $result->setNotUpdateable();
23
                return false;
24
            }
25
            return true;
26
        } catch (\Throwable $exception) {
27
            $result->setNotUpdateable();
28
            $result->setNotAccessible();
29
            return false;
30
        }
31
    }
32
}
33