Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'MDL-30126-MOODLE_22_STABLE' of git://github.com/mouneyr…

…ac/moodle into MOODLE_22_STABLE
  • Loading branch information...
commit 32d4d0d1ce791b7ff6c83eb96cf7ac6965584e51 2 parents 4ab3a01 + 9c228a6
@stronk7 stronk7 authored
Showing with 20 additions and 5 deletions.
  1. +20 −5 webservice/rest/lib.php
View
25 webservice/rest/lib.php
@@ -21,17 +21,21 @@
*/
class webservice_rest_client {
+ /** @var moodle_url the REST server url */
private $serverurl;
+
private $token;
+ private $format;
/**
* Constructor
* @param string $serverurl a Moodle URL
* @param string $token
*/
- public function __construct($serverurl, $token) {
- $this->serverurl = $serverurl;
+ public function __construct($serverurl, $token, $format = 'xml') {
+ $this->serverurl = new moodle_url($serverurl);
$this->token = $token;
+ $this->format = $format;
}
/**
@@ -51,11 +55,22 @@ public function set_token($token) {
public function call($functionname, $params) {
global $DB, $CFG;
- $result = download_file_content($this->serverurl
- . '?wstoken='.$this->token.'&wsfunction='
- . $functionname, null, $params);
+ if ($this->format == 'json') {
+ $formatparam = '&moodlewsrestformat=json';
+ $this->serverurl->param('moodlewsrestformat','json');
+ } else {
+ $formatparam = ''; //to keep retro compability with old server that only support xml (they don't expect this param)
+ }
+
+ $this->serverurl->param('wstoken',$this->token);
+ $this->serverurl->param('wsfunction',$functionname); //you could also use params().
+
+ $result = download_file_content($this->serverurl->out(false), null, $params);
//TODO : transform the XML result into PHP values - MDL-22965
+ if ($this->format == 'json') {
+ $result = json_decode($result);
+ }
return $result;
}
Please sign in to comment.
Something went wrong with that request. Please try again.