/** * Simple procedure to test most RPC functions * */ public function test() { $RPCType = Yii::app()->getConfig("RPCInterface"); $serverUrl = Yii::app()->getBaseUrl(true) . '/' . dirname(Yii::app()->request->getPathInfo()); $sFileToImport = dirname(Yii::app()->basePath) . DIRECTORY_SEPARATOR . 'docs' . DIRECTORY_SEPARATOR . 'demosurveys' . DIRECTORY_SEPARATOR . 'limesurvey2_sample_survey_english.lss'; if ($RPCType == 'xml') { require_once 'Zend/XmlRpc/Client.php'; $client = new Zend_XmlRpc_Client($serverUrl); } elseif ($RPCType == 'json') { Yii::app()->loadLibrary('jsonRPCClient'); $client = new jsonRPCClient($serverUrl); } $sSessionKey = $client->call('get_session_key', array('admin', 'password')); if (is_array($sSessionKey)) { echo $sSessionKey['status']; die; } else { echo 'Retrieved session key' . '<br>'; } $sLSSData = base64_encode(file_get_contents($sFileToImport)); $iSurveyID = $client->call('import_survey', array($sSessionKey, $sLSSData, 'lss', 'Test import by JSON_RPC', 1000)); echo 'Created new survey SID:' . $iSurveyID . '<br>'; $aResult = $client->call('activate_survey', array($sSessionKey, $iSurveyID)); if ($aResult['status'] == 'OK') { echo 'Survey ' . $iSurveyID . ' successfully activated.<br>'; } $aResult = $client->call('activate_tokens', array($sSessionKey, $iSurveyID, array(1, 2))); if ($aResult['status'] == 'OK') { echo 'Tokens for Survey ID ' . $iSurveyID . ' successfully activated.<br>'; } $aResult = $client->call('set_survey_properties', array($sSessionKey, $iSurveyID, array('faxto' => '0800-LIMESURVEY'))); if (!array_key_exists('status', $aResult)) { echo 'Modified survey settings for survey ' . $iSurveyID . '<br>'; } $aResult = $client->call('add_language', array($sSessionKey, $iSurveyID, 'ar')); if ($aResult['status'] == 'OK') { echo 'Added Arabian as additional language' . '<br>'; } $aResult = $client->call('set_language_properties', array($sSessionKey, $iSurveyID, array('surveyls_welcometext' => 'An Arabian welcome text!'), 'ar')); if ($aResult['status'] == 'OK') { echo 'Modified survey locale setting welcometext for Arabian in survey ID ' . $iSurveyID . '<br>'; } $aResult = $client->call('delete_language', array($sSessionKey, $iSurveyID, 'ar')); if ($aResult['status'] == 'OK') { echo 'Removed Arabian as additional language' . '<br>'; } //Very simple example to export responses as Excel file //$aResult=$client->call('export_responses', array($sSessionKey,$iSurveyID,'xls')); //$aResult=$client->call('export_responses', array($sSessionKey,$iSurveyID,'pdf')); //$aResult=$client->call('export_responses', array($sSessionKey,$iSurveyID,'doc')); $aResult = $client->call('export_responses', array($sSessionKey, $iSurveyID, 'csv')); //file_put_contents('test.xls',base64_decode(chunk_split($aResult))); $aResult = $client->call('delete_survey', array($sSessionKey, $iSurveyID)); echo 'Deleted survey SID:' . $iSurveyID . '-' . $aResult['status'] . '<br>'; // Release the session key - close the session $Result = $client->call('release_session_key', array($sSessionKey)); echo 'Closed the session' . '<br>'; }
/** * Return an array of objects representing search results. * * See: http://www.bugzilla.org/docs/4.2/en/html/api/Bugzilla/WebService/Bug.html#search * * @param array $params search fields => values * @return array of stdClass bug objects for given search * @return boolean false if search failed altogether (I think) */ function search(array $params) { $client = new jsonRPCClient("https://bugzilla.wikimedia.org/jsonrpc.cgi"); try { $result = $client->call('Bug.search', array($params)); } catch (\Exception $e) { Fail::log($e); return false; } $bugs = array(); for ($i = 0, $c = count($result[1]['bugs']); $i < $c; ++$i) { $bugs[] = (object) $result[1]['bugs'][$i]; } return $bugs; }
function search_gerrit() { $client = new jsonRPCClient("https://gerrit.wikimedia.org/r/gerrit/rpc/ChangeListService"); try { $result = $client->call('allQueryNext', array()); } catch (\Exception $e) { Fail::log($e); return false; } $bugs = array(); for ($i = 0, $c = count($result[1]['bugs']); $i < $c; ++$i) { $bugs[] = (object) $result[1]['bugs'][$i]; } return $bugs; }