Chris@0
|
1 <?php
|
Chris@0
|
2 namespace Zumba\GastonJS\NetworkTraffic;
|
Chris@0
|
3
|
Chris@0
|
4 /**
|
Chris@0
|
5 * Class Response
|
Chris@0
|
6 * @package Zumba\GastonJS\NetworkTraffic
|
Chris@0
|
7 */
|
Chris@0
|
8 class Response {
|
Chris@0
|
9 /** @var array */
|
Chris@0
|
10 protected $data;
|
Chris@0
|
11
|
Chris@0
|
12 /**
|
Chris@0
|
13 * @param $data
|
Chris@0
|
14 */
|
Chris@0
|
15 public function __construct($data) {
|
Chris@0
|
16 $this->data = $data;
|
Chris@0
|
17 }
|
Chris@0
|
18
|
Chris@0
|
19 /**
|
Chris@0
|
20 * Gets Response url
|
Chris@0
|
21 * @return string
|
Chris@0
|
22 */
|
Chris@0
|
23 public function getUrl() {
|
Chris@0
|
24 return $this->data['url'];
|
Chris@0
|
25 }
|
Chris@0
|
26
|
Chris@0
|
27 /**
|
Chris@0
|
28 * Gets the response status code
|
Chris@0
|
29 * @return int
|
Chris@0
|
30 */
|
Chris@0
|
31 public function getStatus() {
|
Chris@0
|
32 return intval($this->data['status']);
|
Chris@0
|
33 }
|
Chris@0
|
34
|
Chris@0
|
35 /**
|
Chris@0
|
36 * Gets the status text of the response
|
Chris@0
|
37 * @return string
|
Chris@0
|
38 */
|
Chris@0
|
39 public function getStatusText() {
|
Chris@0
|
40 return $this->data['statusText'];
|
Chris@0
|
41 }
|
Chris@0
|
42
|
Chris@0
|
43 /**
|
Chris@0
|
44 * Gets the response headers
|
Chris@0
|
45 * @return array
|
Chris@0
|
46 */
|
Chris@0
|
47 public function getHeaders() {
|
Chris@0
|
48 return $this->data['headers'];
|
Chris@0
|
49 }
|
Chris@0
|
50
|
Chris@0
|
51 /**
|
Chris@0
|
52 * Get redirect url if response is a redirect
|
Chris@0
|
53 * @return string
|
Chris@0
|
54 */
|
Chris@0
|
55 public function getRedirectUrl() {
|
Chris@0
|
56 if (isset($this->data['redirectUrl']) && !empty($this->data['redirectUrl'])) {
|
Chris@0
|
57 return $this->data['redirectUrl'];
|
Chris@0
|
58 }
|
Chris@0
|
59 return null;
|
Chris@0
|
60 }
|
Chris@0
|
61
|
Chris@0
|
62 /**
|
Chris@0
|
63 * Returns the size of the response body
|
Chris@0
|
64 * @return int
|
Chris@0
|
65 */
|
Chris@0
|
66 public function getBodySize() {
|
Chris@0
|
67 if (isset($this->data['bodySize'])) {
|
Chris@0
|
68 return intval($this->data['bodySize']);
|
Chris@0
|
69 }
|
Chris@0
|
70 return 0;
|
Chris@0
|
71 }
|
Chris@0
|
72
|
Chris@0
|
73 /**
|
Chris@0
|
74 * Returns the content type of the response
|
Chris@0
|
75 * @return string
|
Chris@0
|
76 */
|
Chris@0
|
77 public function getContentType() {
|
Chris@0
|
78 if (isset($this->data['contentType'])) {
|
Chris@0
|
79 return $this->data['contentType'];
|
Chris@0
|
80 }
|
Chris@0
|
81 return null;
|
Chris@0
|
82 }
|
Chris@0
|
83
|
Chris@0
|
84 /**
|
Chris@0
|
85 * Returns if exists the response time
|
Chris@0
|
86 * @return \DateTime
|
Chris@0
|
87 */
|
Chris@0
|
88 public function getTime() {
|
Chris@0
|
89 if (isset($this->data['time'])) {
|
Chris@0
|
90 $requestTime = new \DateTime();
|
Chris@0
|
91 //TODO: fix the microseconds to miliseconds
|
Chris@0
|
92 $requestTime->createFromFormat("Y-m-dTH:i:s.uZ", $this->data["time"]);
|
Chris@0
|
93 return $requestTime;
|
Chris@0
|
94 }
|
Chris@0
|
95 return null;
|
Chris@0
|
96 }
|
Chris@0
|
97 }
|