public function retrieveOrganizations() { /* Request a Security Token for the Discovery Service */ $securityToken = $this->authentication->getDiscoverySecurityToken(); /* Generate a Soap Request for the Retrieve Organization Request method of the Discovery Service */ $discoverySoapRequest = $this->generateSoapRequest($this->settings->discoveryUrl, $this->soapActions->getSoapAction('discovery', 'Execute'), $securityToken, SoapRequestsGenerator::generateRetrieveOrganizationRequest()); $discovery_data = self::getSoapResponse($this->settings->discoveryUrl, $discoverySoapRequest); $organizationDetails = array(); $discoveryDOM = new DOMDocument(); $discoveryDOM->loadXML($discovery_data); if ($discoveryDOM->getElementsByTagName('OrganizationDetail')->length > 0) { foreach ($discoveryDOM->getElementsByTagName('OrganizationDetail') as $organizationNode) { $organization = array(); foreach ($organizationNode->getElementsByTagName('Endpoints')->item(0)->getElementsByTagName('KeyValuePairOfEndpointTypestringztYlk6OT') as $endpointDOM) { $organization["Endpoints"][$endpointDOM->getElementsByTagName('key')->item(0)->textContent] = $endpointDOM->getElementsByTagName('value')->item(0)->textContent; } if ($organizationNode->getElementsByTagName('FriendlyName')->length > 0) { $organization["FriendlyName"] = $organizationNode->getElementsByTagName('FriendlyName')->item(0)->textContent; } if ($organizationNode->getElementsByTagName('OrganizationId')->length > 0) { $organization["OrganizationId"] = $organizationNode->getElementsByTagName('OrganizationId')->item(0)->textContent; } if ($organizationNode->getElementsByTagName('OrganizationVersion')->length > 0) { $organization["OrganizationVersion"] = $organizationNode->getElementsByTagName('OrganizationVersion')->item(0)->textContent; } if ($organizationNode->getElementsByTagName('State')->length > 0) { $organization["State"] = $organizationNode->getElementsByTagName('State')->item(0)->textContent; } if ($organizationNode->getElementsByTagName('UniqueName')->length > 0) { $organization["UniqueName"] = $organizationNode->getElementsByTagName('UniqueName')->item(0)->textContent; } if ($organizationNode->getElementsByTagName('UrlName')->length > 0) { $organization["UrlName"] = $organizationNode->getElementsByTagName('UrlName')->item(0)->textContent; } array_push($organizationDetails, $organization); } } return $organizationDetails; }