Passed
Pull Request — master (#34)
by Adam
03:39
created

Logs   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Importance

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

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
     * @param string $environmentUuid
23
     * @return LogsResponse
24
     */
25
    public function getAll($environmentUuid)
26
    {
27
        return new LogsResponse(
28
            $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

28
            /** @scrutinizer ignore-type */ $this->client->request('get', "/environments/${environmentUuid}/logs")
Loading history...
29
        );
30
    }
31
32
    /**
33
     * Downloads a log file.
34
     *
35
     * @param string $environmentUuid
36
     * @param string $logType
37
     * @return object
38
     */
39
    public function download($environmentUuid, $logType)
40
    {
41
        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...
42
    }
43
44
    /**
45
     * Creates a log file snapshot.
46
     *
47
     * @param string $environmentUuid
48
     * @param string $logType
49
     * @return OperationResponse
50
     */
51
    public function snapshot($environmentUuid, $logType)
52
    {
53
        return new OperationResponse(
54
            $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

54
            /** @scrutinizer ignore-type */ $this->client->request('post', "/environments/${environmentUuid}/logs/${logType}")
Loading history...
55
        );
56
    }
57
58
    /**
59
     * Returns logstream WSS stream information.
60
     *
61
     * @param string $environmentUuid
62
     * @return LogstreamResponse
63
     */
64
    public function stream($environmentUuid)
65
    {
66
        return new LogstreamResponse(
67
            $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

67
            /** @scrutinizer ignore-type */ $this->client->request('get', "/environments/${environmentUuid}/logstream")
Loading history...
68
        );
69
    }
70
}
71