Version 1
[yaffs-website] / vendor / jcalderonzumba / gastonjs / src / NetworkTraffic / Request.php
diff --git a/vendor/jcalderonzumba/gastonjs/src/NetworkTraffic/Request.php b/vendor/jcalderonzumba/gastonjs/src/NetworkTraffic/Request.php
new file mode 100644 (file)
index 0000000..e6f9893
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+
+namespace Zumba\GastonJS\NetworkTraffic;
+
+/**
+ * Class Request
+ * @package Zumba\GastonJS\NetworkTraffic
+ */
+class Request {
+  /** @var array */
+  protected $data;
+  /** @var array */
+  protected $responseParts;
+
+
+  /**
+   * @param array $data
+   * @param array $responseParts
+   */
+  public function __construct($data, $responseParts = null) {
+    $this->data = $data;
+    $this->responseParts = $this->createResponseParts($responseParts);
+  }
+
+  /**
+   * Creates an array of Response objects from a given response array
+   * @param $responseParts
+   * @return array
+   */
+  protected function createResponseParts($responseParts) {
+    if ($responseParts === null) {
+      return array();
+    }
+    $responses = array();
+    foreach ($responseParts as $responsePart) {
+      $responses[] = new Response($responsePart);
+    }
+    return $responses;
+  }
+
+  /**
+   * @return array
+   */
+  public function getResponseParts() {
+    return $this->responseParts;
+  }
+
+  /**
+   * @param array $responseParts
+   */
+  public function setResponseParts($responseParts) {
+    $this->responseParts = $responseParts;
+  }
+
+  /**
+   * Returns the url where the request is going to be made
+   * @return string
+   */
+  public function getUrl() {
+    //TODO: add isset maybe?
+    return $this->data['url'];
+  }
+
+  /**
+   * Returns the request method
+   * @return string
+   */
+  public function getMethod() {
+    return $this->data['method'];
+  }
+
+  /**
+   * Gets the request headers
+   * @return array
+   */
+  public function getHeaders() {
+    //TODO: Check if the data is actually an array, else make it array and see implications
+    return $this->data['headers'];
+  }
+
+  /**
+   * Returns if exists the request time
+   * @return \DateTime
+   */
+  public function getTime() {
+    if (isset($this->data['time'])) {
+      $requestTime = new \DateTime();
+      //TODO: fix the microseconds to miliseconds
+      $requestTime->createFromFormat("Y-m-dTH:i:s.uZ", $this->data["time"]);
+      return $requestTime;
+    }
+    return null;
+  }
+
+}