/** * Process request as HTTP 400 and set error message. * * @param string $message */ protected function _processBadRequest($message) { $this->_setResponseContentType('text/xml'); $this->_response->setHttpResponseCode(400); $details = array(); foreach ($this->_apiConfig->getAllResourcesVersions() as $resourceName => $versions) { foreach ($versions as $version) { $details['availableResources'][$resourceName][$version] = sprintf('%s?wsdl&resources[%s]=%s', $this->_soapServer->getEndpointUri(), $resourceName, $version); } } $this->_setResponseBody($this->_soapFault->getSoapFaultMessage($message, Mage_Webapi_Model_Soap_Fault::FAULT_CODE_SENDER, 'en', $details)); }
/** * Test getSoapFaultMessage method. * * @dataProvider dataProviderForGetSoapFaultMessageTest */ public function testGetSoapFaultMessage($faultReason, $faultCode, $language, $additionalParameters, $expectedResult, $assertMessage) { $actualResult = $this->_soapFault->getSoapFaultMessage($faultReason, $faultCode, $language, $additionalParameters); $this->assertXmlStringEqualsXmlString($expectedResult, $actualResult, $assertMessage); }
/** * Catch exceptions if request is invalid and output fault message. * * @param DOMDocument|DOMNode|SimpleXMLElement|stdClass|string $request * @return Mage_Webapi_Model_Soap_Server * @SuppressWarnings(PHPMD.ExitExpression) */ protected function _setRequest($request) { try { parent::_setRequest($request); } catch (Exception $e) { $fault = new Mage_Webapi_Model_Soap_Fault($e->getMessage(), Mage_Webapi_Model_Soap_Fault::FAULT_CODE_SENDER); die($fault->toXml($this->_application->isDeveloperMode())); } return $this; }