/** * Serialize the objet to XML */ public function toXML() { $xml = Parser::convertToDOMDocument("<lti />"); $this->appendElement($xml, "id", $this->getID()); $this->appendElement($xml, "instructor", $this->isInstructor()); foreach ($this->request->get_parameters() as $id => $value) { $this->appendElement($xml, $id, $value); } return $xml; }
public function testGetAllParameters() { // Yes, a awesomely boring test.. But if this doesn't work, the other tests is unreliable $request = new OAuthRequest('', '', array('test' => 'foo')); $this->assertEquals(array('test' => 'foo'), $request->get_parameters(), 'Failed to read back parameters'); $request = new OAuthRequest('', '', array('test' => 'foo', 'bar' => 'baz')); $this->assertEquals(array('test' => 'foo', 'bar' => 'baz'), $request->get_parameters(), 'Failed to read back parameters'); $request = new OAuthRequest('', '', array('test' => array('foo', 'bar'))); $this->assertEquals(array('test' => array('foo', 'bar')), $request->get_parameters(), 'Failed to read back parameters'); }
/** * Performs a OAuthRequest, returning the response * You can give a token to force signatures with this * token. If none given, the token used when creating * this instance of CampusNotesAPI is used * @param OAuthRequest $req * @param OAuthToken $token * @return string * @throws CNApiException */ private function _performRequest(OAuthRequest $req, OAuthToken $token = null) { $token = $token ? $token : $this->oauth_token; $req->sign_request($this->hmac_signature_method, $this->oauth_consumer, $token); $curl = curl_init(); $params = $req->get_parameters(); foreach (array_keys($params) as $i) { if (substr($i, 0, 6) == 'oauth_') { unset($params[$i]); } } $url = $req->get_normalized_http_url(); if ($req->get_normalized_http_method() == 'POST') { curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params)); } else { if (count($params)) { $url .= '?' . http_build_query($params); } } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array($req->to_header())); $rtn = curl_exec($curl); if (!$rtn) { throw new OAuthClientException(curl_error($curl)); } else { if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 200) { throw new OAuthClientException($rtn); } else { return $rtn; } } }