/** * Returns generated WSDL file for the webservice * * @param SimpleXMLElement $webservice Webservice configuration xml * @param string $wsdlPath Path of WSDL file * * @return SimpleXMLElement */ public static function generateWsdl($webservice, $wsdlPath = null) { if (empty($wsdlPath) && !empty($webservice)) { $client = RApiHalHelper::attributeToString($webservice, 'client', 'site'); $version = !empty($webservice->config->version) ? (string) $webservice->config->version : '1.0.0'; $name = (string) $webservice->config->name; $webserviceInstance = RApiHalHelper::getInstalledWebservice($client, $name, $version); $wsdlPath = self::getWebserviceFilePath($client, $name, $version, 'wsdl', $webserviceInstance['path']); } $wsdl = new RApiSoapWsdl($webservice); return $wsdl->generateWsdl($wsdlPath); }
/** * Method to instantiate the file-based api call. * * @param mixed $options Optional custom options to load. JRegistry or array format * * @throws Exception * @since 1.2 */ public function __construct($options = null) { parent::__construct($options); JPluginHelper::importPlugin('redcore'); $this->setWebserviceName(); $this->client = $this->options->get('webserviceClient', 'site'); $this->webserviceVersion = $this->options->get('webserviceVersion', ''); $this->hal = new RApiHalDocumentResource(''); if (!empty($this->webserviceName)) { if (empty($this->webserviceVersion)) { $this->webserviceVersion = RApiHalHelper::getNewestWebserviceVersion($this->client, $this->webserviceName); } $this->webservice = RApiHalHelper::getInstalledWebservice($this->client, $this->webserviceName, $this->webserviceVersion); if (empty($this->webservice)) { throw new Exception(JText::sprintf('LIB_REDCORE_API_HAL_WEBSERVICE_NOT_INSTALLED', $this->webserviceName, $this->webserviceVersion)); } if (empty($this->webservice['state'])) { throw new Exception(JText::sprintf('LIB_REDCORE_API_HAL_WEBSERVICE_UNPUBLISHED', $this->webserviceName, $this->webserviceVersion)); } $this->webservicePath = $this->webservice['path']; $this->configuration = RApiHalHelper::loadWebserviceConfiguration($this->webserviceName, $this->webserviceVersion, 'xml', $this->webservicePath, $this->client); // Set option and view name $this->setOptionViewName($this->webserviceName, $this->configuration); // Set base data $this->setBaseDataValues(); } // Init Environment $this->triggerFunction('setApiOperation'); // Set initial status code $this->setStatusCode($this->statusCode); // Check for defined constants if (!defined('JSON_UNESCAPED_SLASHES')) { define('JSON_UNESCAPED_SLASHES', 64); } // OAuth2 check if (RBootstrap::getConfig('webservices_authorization_check', 0) == 0) { $this->authorizationCheck = 'oauth2'; } elseif (RBootstrap::getConfig('webservices_authorization_check', 0) == 1) { $this->authorizationCheck = 'joomla'; } }