Completed
Pull Request — master (#150)
by Brent
01:40
created

CrawlRequestFailed::__invoke()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 12
rs 9.4285
cc 2
eloc 7
nc 2
nop 2
1
<?php
2
3
namespace Spatie\Crawler\Handlers;
4
5
use GuzzleHttp\Exception\RequestException;
6
use Spatie\Crawler\CrawlQueue\CrawlQueue;
7
8
class CrawlRequestFailed
9
{
10
    /** @var \Spatie\Crawler\CrawlQueue\CrawlQueue */
11
    protected $crawlQueue;
12
13
    /** @var array[\Spatie\Crawler\CrawlObserver] */
14
    protected $crawlObservers;
15
16
    public function __construct(
17
        CrawlQueue $crawlQueue,
18
        array $crawlObservers
19
    ) {
20
        $this->crawlQueue = $crawlQueue;
21
        $this->crawlObservers = $crawlObservers;
22
    }
23
24
    public function __invoke(RequestException $exception, $index)
25
    {
26
        $crawlUrl = $this->crawlQueue->getUrlById($index);
27
28
        foreach ($this->crawlObservers as $crawlObserver) {
29
            $crawlObserver->crawlFailed(
30
                $crawlUrl->url,
31
                $exception,
32
                $crawlUrl->foundOnUrl
33
            );
34
        }
35
    }
36
}
37