/** * Returns a JasperResponseXmlDoc to working on * @return JasperResponseXmlDoc */ private function getJasperResponse() { $request = new JasperRequestXmlDoc('get'); $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_URI, $this->__uri); $response = new JasperResponseXmlDoc($this->__client->get($request->getSoapParameter())); return $response; }
private function buildSoapRequest($uri) { $request = new JasperRequestXmlDoc('get'); $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_URI, $uri); $descriptors = new JasperResponseXmlDoc($this->__client->get($request->getSoapParameter())); foreach ($descriptors as $rd) { if ($rd->getResourceDescriptor()->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_TYPE) == 'inputControl') { $this->__inputControls[] = $rd; } } }
private function getListvalues($uri) { $request = new JasperRequestXmlDoc('get'); $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_URI, $uri); $response = new JasperResponseXmlDoc($this->__client->get($request->getSoapParameter())); $data = array(); foreach ($response as $rd) { $data = $rd->getProperties()->getParameter(JasperResourceDescriptor::PROP_LOV); break; } return $data; }
public function getJsonStructure() { $request = new JasperRequestXmlDoc('list'); $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_TYPE, 'folder'); $uri = $this->__parent; if ($this->hasParameter('tree_root')) { if (!preg_match('/^' . preg_quote($this->getParameter('tree_root'), '/') . '/', $uri)) { if ($uri !== 'root') { $this->getContext()->getLoggerManager()->log('Reports: Possible security hack, try accessing jasper server on ' . $uri . ' without matching root path', AgaviLogger::ERROR); } $uri = $this->getParameter('tree_root'); } } else { if ($uri == 'root') { $uri = '/'; } } $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_URI, $uri); $response = new JasperResponseXmlDoc($this->__soap->list($request->getSoapParameter())); $out = array(); foreach ($response as $rd) { /* * Maybe we should dereference references without name, don't know */ if (!$rd->getResourceDescriptor()->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_NAME)) { continue; } if ($this->__filter) { if ($this->__filter->matchDescriptor($rd) == false) { continue; } } $p = $rd->getResourceDescriptor(); $tmp = array('id' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_URI), 'text' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_NAME), 'leaf' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_TYPE) == 'folder' ? false : true, 'type' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_TYPE), 'uri' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_URI), 'name' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_NAME), 'label' => $rd->getLabel(), 'iconCls' => $this->mapIconClassByType($p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_TYPE))); $tmp = (array) $rd->getProperties()->getParameters() + $tmp; $out[] = $tmp; } return $out; }
/** * We have our own envelope request doc so create the request * from that and do not call the methods seperately * @param JasperRequestXmlDoc $doc * @throws SoapFault * @return boolean */ public function doRequest(JasperRequestXmlDoc $doc) { $this->__request =& $doc; $function = $doc->getOperationName(); try { $this->__call($function, array($doc->getSoapParameter())); $this->parseSoapReply(); } catch (SoapFault $e) { if ($e->getMessage() == self::SOAP_BLIND_ERROR) { $this->parseSoapReply(); } else { /** * That is not the wanted error, so throw again */ throw $e; } } if ($this->getJasperResponseFor(self::CONTENT_ID_RESPONSE)->success() === false) { throw new AppKitModelException($this->getJasperResponseFor(self::CONTENT_ID_RESPONSE)->returnMessage()); } return true; }