TimelineSearch   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 39
rs 10
c 0
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A modifyTimelineRequest() 0 7 2
A getTimelineUrlPrefix() 0 3 1
1
<?php
2
3
namespace Osnova\Services\Timeline\Owners;
4
5
use Osnova\Services\Timeline\Interfaces\ModifiesTimelineRequest;
6
use Osnova\Services\Timeline\Interfaces\TimelineOwnerInterface;
7
use Osnova\Services\Timeline\Requests\TimelineRequest;
8
use Osnova\Services\Timeline\Requests\TimelineSearchRequest;
9
10
class TimelineSearch implements TimelineOwnerInterface, ModifiesTimelineRequest
11
{
12
    /** @var string */
13
    protected $query;
14
15
    /**
16
     * TimelineSearch constructor.
17
     *
18
     * @param string $query
19
     */
20
    public function __construct(string $query)
21
    {
22
        $this->query = $query;
23
    }
24
25
    /**
26
     * Modify given timeline request.
27
     *
28
     * @param TimelineRequest|TimelineSearchRequest $request
29
     *
30
     * @return TimelineSearchRequest
31
     */
32
    public function modifyTimelineRequest($request)
33
    {
34
        if ($request instanceof TimelineSearchRequest) {
35
            return $request->setQuery($this->query);
36
        }
37
38
        return (new TimelineSearchRequest('relevant'))->setQuery($this->query);
39
    }
40
41
    /**
42
     * Get the timeline URL prefix.
43
     *
44
     * @return string
45
     */
46
    public function getTimelineUrlPrefix()
47
    {
48
        return 'search';
49
    }
50
}
51