2
2
// Copyright 1999-2016. Parallels IP Holdings GmbH.
3
3
4
4
namespace PleskX \Api ;
5
+ use PleskX \Api \Client \Exception ;
5
6
use SimpleXMLElement ;
6
7
7
8
/**
@@ -136,7 +137,12 @@ public function request($request, $mode = self::RESPONSE_SHORT)
136
137
}
137
138
}
138
139
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
+ }
140
146
141
147
return (self ::RESPONSE_FULL == $ mode ) ? $ xml : $ xml ->xpath ('//result ' )[0 ];
142
148
}
@@ -148,7 +154,7 @@ public function request($request, $mode = self::RESPONSE_SHORT)
148
154
* @return XmlResponse
149
155
* @throws Exception
150
156
*/
151
- protected function _performHttpRequest ($ request )
157
+ private function _performHttpRequest ($ request )
152
158
{
153
159
$ curl = curl_init ();
154
160
@@ -196,7 +202,7 @@ public function multiRequest($requests, $mode = self::RESPONSE_SHORT)
196
202
197
203
foreach ($ requests as $ request ) {
198
204
if ($ request instanceof SimpleXMLElement) {
199
- // TODO: implement
205
+ throw new Exception ( ' SimpleXML type of request is not supported for multi requests. ' );
200
206
} else {
201
207
if (is_array ($ request )) {
202
208
$ request = $ this ->_arrayToXml ($ request , $ requestXml )->asXML ();
@@ -207,7 +213,11 @@ public function multiRequest($requests, $mode = self::RESPONSE_SHORT)
207
213
$ responses [] = $ this ->request ($ request );
208
214
}
209
215
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
+ }
211
221
212
222
$ responses = [];
213
223
foreach ($ responseXml ->children () as $ childNode ) {
0 commit comments