Response.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <?php
  2. namespace ModulesGarden\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap;
  3. use ModulesGarden\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Helpers\XmlParser;
  4. /**
  5. *
  6. * Created by PhpStorm.
  7. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
  8. * Date: 05.09.19
  9. * Time: 10:51
  10. * Class Response
  11. */
  12. class Response
  13. {
  14. protected $request;
  15. protected $options;
  16. protected $params;
  17. protected $headers;
  18. protected $xmlResponse;
  19. protected $responseHead;
  20. protected $responseBody;
  21. protected $responseModel;
  22. protected $lastError;
  23. protected $errors = [];
  24. /**
  25. * @return mixed
  26. */
  27. public function getRequest()
  28. {
  29. return $this->request;
  30. }
  31. /**
  32. * @param $request
  33. * @return $this
  34. */
  35. public function setRequest($request)
  36. {
  37. $this->request = $request;
  38. return $this;
  39. }
  40. /**
  41. * @return mixed
  42. */
  43. public function getOptions()
  44. {
  45. return $this->options;
  46. }
  47. /**
  48. * @param $options
  49. * @return $this
  50. */
  51. public function setOptions($options)
  52. {
  53. $this->options = $options;
  54. return $this;
  55. }
  56. /**
  57. * @return mixed
  58. */
  59. public function getParams()
  60. {
  61. return $this->params;
  62. }
  63. /**
  64. * @param $params
  65. * @return $this
  66. */
  67. public function setParams($params)
  68. {
  69. $this->params = $params;
  70. return $this;
  71. }
  72. /**
  73. * @return mixed
  74. */
  75. public function getHeaders()
  76. {
  77. return $this->headers;
  78. }
  79. /**
  80. * @param $headers
  81. * @return $this
  82. */
  83. public function setHeaders($headers)
  84. {
  85. $this->headers = $headers;
  86. return $this;
  87. }
  88. /**
  89. * @return mixed
  90. */
  91. public function getXmlResponse()
  92. {
  93. return $this->xmlResponse;
  94. }
  95. /**
  96. * @param $xmlResponse
  97. * @return $this
  98. */
  99. public function setXmlResponse($xmlResponse)
  100. {
  101. $this->xmlResponse = $xmlResponse;
  102. return $this;
  103. }
  104. /**
  105. * @return mixed
  106. */
  107. public function getResponseBody()
  108. {
  109. return $this->responseBody;
  110. }
  111. /**
  112. * @return mixed
  113. */
  114. public function getResponseModel()
  115. {
  116. return $this->responseModel;
  117. }
  118. /**
  119. * @param $responseModel
  120. * @return $this
  121. */
  122. public function setResponseModel($responseModel)
  123. {
  124. $this->responseModel = $responseModel;
  125. return $this;
  126. }
  127. /**
  128. *
  129. */
  130. public function getLastError()
  131. {
  132. return $this->lastError;
  133. }
  134. /**
  135. * @param $lastError
  136. */
  137. public function setLastError($lastError)
  138. {
  139. //todo save to file
  140. $this->errors[] = $lastError;
  141. $this->lastError = $lastError;
  142. }
  143. /**
  144. * @return bool
  145. */
  146. public function getLastErrorCode()
  147. {
  148. if($code = $this->responseBody['SOAP:FAULT']['SOAP:DETAIL']['ERROR']['CODE']['DATA'])
  149. {
  150. return $code;
  151. }
  152. return false;
  153. }
  154. /**
  155. * Parse response
  156. *
  157. * @return $this
  158. */
  159. public function response()
  160. {
  161. /**
  162. * xml parse response
  163. */
  164. $xml = new XmlParser();
  165. $array = $xml->parse($this->xmlResponse);
  166. /**
  167. * set response header
  168. */
  169. $this->responseHead = $array['SOAP:ENVELOPE']['SOAP:HEADER'];
  170. /**
  171. * set response body
  172. */
  173. $this->responseBody = $array['SOAP:ENVELOPE']['SOAP:BODY'];
  174. return $this;
  175. }
  176. }