private function buildAuthorizeResponse($body)
{
$response = new ThreeScaleAuthorizeResponse();
$doc = new SimpleXMLElement($body);
if ((string) $doc->authorized == 'true') {
$response->setSuccess();
} else {
$response->setError((string) $doc->reason);
}
$response->setPlan((string) $doc->plan);
if ($doc->usage_reports) {
foreach ($doc->usage_reports->usage_report as $node) {
$response->addUsageReport()->setMetric(trim($node['metric']))->setPeriod(trim($node['period']))->setPeriodInterval((string) $node->period_start, (string) $node->period_end)->setCurrentValue((int) (string) $node->current_value)->setMaxValue((int) (string) $node->max_value);
}
}
return $response;
}