Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Zumba\GastonJS\NetworkTraffic;
|
Chris@0
|
4
|
Chris@0
|
5 /**
|
Chris@0
|
6 * Class Request
|
Chris@0
|
7 * @package Zumba\GastonJS\NetworkTraffic
|
Chris@0
|
8 */
|
Chris@0
|
9 class Request {
|
Chris@0
|
10 /** @var array */
|
Chris@0
|
11 protected $data;
|
Chris@0
|
12 /** @var array */
|
Chris@0
|
13 protected $responseParts;
|
Chris@0
|
14
|
Chris@0
|
15
|
Chris@0
|
16 /**
|
Chris@0
|
17 * @param array $data
|
Chris@0
|
18 * @param array $responseParts
|
Chris@0
|
19 */
|
Chris@0
|
20 public function __construct($data, $responseParts = null) {
|
Chris@0
|
21 $this->data = $data;
|
Chris@0
|
22 $this->responseParts = $this->createResponseParts($responseParts);
|
Chris@0
|
23 }
|
Chris@0
|
24
|
Chris@0
|
25 /**
|
Chris@0
|
26 * Creates an array of Response objects from a given response array
|
Chris@0
|
27 * @param $responseParts
|
Chris@0
|
28 * @return array
|
Chris@0
|
29 */
|
Chris@0
|
30 protected function createResponseParts($responseParts) {
|
Chris@0
|
31 if ($responseParts === null) {
|
Chris@0
|
32 return array();
|
Chris@0
|
33 }
|
Chris@0
|
34 $responses = array();
|
Chris@0
|
35 foreach ($responseParts as $responsePart) {
|
Chris@0
|
36 $responses[] = new Response($responsePart);
|
Chris@0
|
37 }
|
Chris@0
|
38 return $responses;
|
Chris@0
|
39 }
|
Chris@0
|
40
|
Chris@0
|
41 /**
|
Chris@0
|
42 * @return array
|
Chris@0
|
43 */
|
Chris@0
|
44 public function getResponseParts() {
|
Chris@0
|
45 return $this->responseParts;
|
Chris@0
|
46 }
|
Chris@0
|
47
|
Chris@0
|
48 /**
|
Chris@0
|
49 * @param array $responseParts
|
Chris@0
|
50 */
|
Chris@0
|
51 public function setResponseParts($responseParts) {
|
Chris@0
|
52 $this->responseParts = $responseParts;
|
Chris@0
|
53 }
|
Chris@0
|
54
|
Chris@0
|
55 /**
|
Chris@0
|
56 * Returns the url where the request is going to be made
|
Chris@0
|
57 * @return string
|
Chris@0
|
58 */
|
Chris@0
|
59 public function getUrl() {
|
Chris@0
|
60 //TODO: add isset maybe?
|
Chris@0
|
61 return $this->data['url'];
|
Chris@0
|
62 }
|
Chris@0
|
63
|
Chris@0
|
64 /**
|
Chris@0
|
65 * Returns the request method
|
Chris@0
|
66 * @return string
|
Chris@0
|
67 */
|
Chris@0
|
68 public function getMethod() {
|
Chris@0
|
69 return $this->data['method'];
|
Chris@0
|
70 }
|
Chris@0
|
71
|
Chris@0
|
72 /**
|
Chris@0
|
73 * Gets the request headers
|
Chris@0
|
74 * @return array
|
Chris@0
|
75 */
|
Chris@0
|
76 public function getHeaders() {
|
Chris@0
|
77 //TODO: Check if the data is actually an array, else make it array and see implications
|
Chris@0
|
78 return $this->data['headers'];
|
Chris@0
|
79 }
|
Chris@0
|
80
|
Chris@0
|
81 /**
|
Chris@0
|
82 * Returns if exists the request time
|
Chris@0
|
83 * @return \DateTime
|
Chris@0
|
84 */
|
Chris@0
|
85 public function getTime() {
|
Chris@0
|
86 if (isset($this->data['time'])) {
|
Chris@0
|
87 $requestTime = new \DateTime();
|
Chris@0
|
88 //TODO: fix the microseconds to miliseconds
|
Chris@0
|
89 $requestTime->createFromFormat("Y-m-dTH:i:s.uZ", $this->data["time"]);
|
Chris@0
|
90 return $requestTime;
|
Chris@0
|
91 }
|
Chris@0
|
92 return null;
|
Chris@0
|
93 }
|
Chris@0
|
94
|
Chris@0
|
95 }
|