22// Copyright 1999-2016. Parallels IP Holdings GmbH.
33
44namespace PleskX \Api ;
5+ use PleskX \Api \Client \Exception ;
56use SimpleXMLElement ;
67
78/**
@@ -136,7 +137,12 @@ public function request($request, $mode = self::RESPONSE_SHORT)
136137 }
137138 }
138139
139- $ xml = $ this ->_performHttpRequest ($ request );
140+ if ('sdk ' == $ this ->_protocol ) {
141+ $ requestXml = new SimpleXMLElement ((string )$ request );
142+ $ xml = \pm_ApiRpc::getService ()->call ($ requestXml ->children ()[0 ]->asXml ());
143+ } else {
144+ $ xml = $ this ->_performHttpRequest ($ request );
145+ }
140146
141147 return (self ::RESPONSE_FULL == $ mode ) ? $ xml : $ xml ->xpath ('//result ' )[0 ];
142148 }
@@ -148,7 +154,7 @@ public function request($request, $mode = self::RESPONSE_SHORT)
148154 * @return XmlResponse
149155 * @throws Exception
150156 */
151- protected function _performHttpRequest ($ request )
157+ private function _performHttpRequest ($ request )
152158 {
153159 $ curl = curl_init ();
154160
@@ -196,7 +202,7 @@ public function multiRequest($requests, $mode = self::RESPONSE_SHORT)
196202
197203 foreach ($ requests as $ request ) {
198204 if ($ request instanceof SimpleXMLElement) {
199- // TODO: implement
205+ throw new Exception ( ' SimpleXML type of request is not supported for multi requests. ' );
200206 } else {
201207 if (is_array ($ request )) {
202208 $ request = $ this ->_arrayToXml ($ request , $ requestXml )->asXML ();
@@ -207,7 +213,11 @@ public function multiRequest($requests, $mode = self::RESPONSE_SHORT)
207213 $ responses [] = $ this ->request ($ request );
208214 }
209215
210- $ responseXml = $ this ->_performHttpRequest ($ requestXml ->asXML ());
216+ if ('sdk ' == $ this ->_protocol ) {
217+ throw new Exception ('Multi requests are not supported via SDK. ' );
218+ } else {
219+ $ responseXml = $ this ->_performHttpRequest ($ requestXml ->asXML ());
220+ }
211221
212222 $ responses = [];
213223 foreach ($ responseXml ->children () as $ childNode ) {
0 commit comments