From 02c2ebfa7ff734fb6b4c4946f766700c347bc484 Mon Sep 17 00:00:00 2001 From: Gilles Crettenand Date: Tue, 2 Jun 2015 01:55:49 +0200 Subject: [PATCH] send http status code accordingly to status --- Lib/WebService.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Lib/WebService.php b/Lib/WebService.php index a4a00a9..0aed98a 100644 --- a/Lib/WebService.php +++ b/Lib/WebService.php @@ -7,6 +7,7 @@ use BSR\Lib\Exception\WebException; abstract class WebService { private $func = null; + private $status = 200; private $log = ''; @@ -40,10 +41,14 @@ abstract class WebService $data["error"]["code"] = $e->getCode(); $data["error"]["name"] = $e->getName(); $data["error"]["reason"] = $e->getMessage(); - $this->log(sprintf("Failure : [%s] %s", $e->getCode(), $e->getName())); + $this->status = 400; + + $this->log(sprintf("Error : [%s] %s", $e->getCode(), $e->getName())); } catch (\Exception $e) { - $data["unexpected error"]["message"] = $e->getMessage(); - $this->log(sprintf("Unexpected exception : %s", $e->getMessage())); + $data["failure"]["message"] = $e->getMessage(); + $this->status = 500; + + $this->log(sprintf("Failure : %s", $e->getMessage())); } $this->Send($data); @@ -98,6 +103,16 @@ abstract class WebService private function Send(array $data) { + static $status_messages = array( + 200 => 'Ok', + 400 => 'Bad request', + 404 => 'Not Found', + 403 => 'Not Authorized', + 500 => 'Server Error', + ); + + header(sprintf('HTTP/1.0 %s %s', $this->status, $status_messages[$this->status])); + ob_clean(); flush();