Completed
Pull Request — master (#34)
by Adam
09:18
created

Logs   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
dl 0
loc 46
rs 10
c 1
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A snapshot() 0 4 1
A stream() 0 4 1
A getAll() 0 4 1
A download() 0 3 1
1
<?php
2
3
namespace AcquiaCloudApi\Endpoints;
4
5
use AcquiaCloudApi\Connector\ClientInterface;
6
use AcquiaCloudApi\Response\EnvironmentResponse;
7
use AcquiaCloudApi\Response\EnvironmentsResponse;
8
use AcquiaCloudApi\Response\LogstreamResponse;
9
use AcquiaCloudApi\Response\LogsResponse;
10
use AcquiaCloudApi\Response\OperationResponse;
11
12
/**
13
 * Class Logs
14
 * @package AcquiaCloudApi\CloudApi
15
 */
16
class Logs extends CloudApiBase implements CloudApiInterface
17
{
18
19
    /**
20
     * Returns a list of log files available for download.
21
     *
22
     * @return LogsResponse
23
     */
24
    public function getAll($environmentUuid)
25
    {
26
        return new LogsResponse(
27
            $this->client->request('get', "/environments/${environmentUuid}/logs")
0 ignored issues
show
Bug introduced by
It seems like $this->client->request('...nvironmentUuid.'/logs') can also be of type object; however, parameter $logs of AcquiaCloudApi\Response\...Response::__construct() does only seem to accept array, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

27
            /** @scrutinizer ignore-type */ $this->client->request('get', "/environments/${environmentUuid}/logs")
Loading history...
28
        );
29
    }
30
31
    /**
32
     * Downloads a log file.
33
     *
34
     * @return object
35
     */
36
    public function download($environmentUuid, $logType)
37
    {
38
        return $this->client->request('get', "/environments/${environmentUuid}/logs/${logType}");
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->client->re...Uuid.'/logs/'.$logType) also could return the type array which is incompatible with the documented return type object.
Loading history...
39
    }
40
41
    /**
42
     * Creates a log file snapshot.
43
     *
44
     * @return OperationResponse
45
     */
46
    public function snapshot($environmentUuid, $logType)
47
    {
48
        return new OperationResponse(
49
            $this->client->request('post', "/environments/${environmentUuid}/logs/${logType}")
0 ignored issues
show
Bug introduced by
It seems like $this->client->request('...Uuid.'/logs/'.$logType) can also be of type array; however, parameter $operation of AcquiaCloudApi\Response\...Response::__construct() does only seem to accept object, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

49
            /** @scrutinizer ignore-type */ $this->client->request('post', "/environments/${environmentUuid}/logs/${logType}")
Loading history...
50
        );
51
    }
52
53
    /**
54
     * Returns logstream WSS stream information.
55
     *
56
     * @return LogstreamResponse
57
     */
58
    public function stream($environmentUuid)
59
    {
60
        return new LogstreamResponse(
61
            $this->client->request('get', "/environments/${environmentUuid}/logstream")
0 ignored issues
show
Bug introduced by
It seems like $this->client->request('...nmentUuid.'/logstream') can also be of type array; however, parameter $logstream of AcquiaCloudApi\Response\...Response::__construct() does only seem to accept object, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

61
            /** @scrutinizer ignore-type */ $this->client->request('get', "/environments/${environmentUuid}/logstream")
Loading history...
62
        );
63
    }
64
}
65