Completed
Push — issue/300 ( fd6ec3 )
by Alex
01:38
created

CheckAvailability::perform()   A

Complexity

Conditions 3
Paths 6

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

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