2,16 → 2,11 |
|
class ReponseHttp { |
|
private $mime = 'application/json'; |
private $encodage = 'utf-8'; |
private $codeHttp = RestServeur::HTTP_CODE_OK; |
|
private $corps = ''; |
|
private $resultatService = null; |
private $erreurs = array(); |
|
|
public function __construct() { |
$this->resultatService = new ResultatService(); |
if (function_exists('json_decode') == false){ |
require_once (dirname(__FILE__).'/JSON.php'); |
function json_decode($content, $assoc = false){ |
32,18 → 27,21 |
} |
} |
|
|
public function setResultatService($resultat) { |
$this->corps = $resultat; |
if (!($resultat instanceof ResultatService)) { |
$this->resultatService->corps = $resultat; |
} else { |
$this->resultatService = $resultat; |
} |
} |
|
public function getCorps() { |
if ($this->etreEnErreur()) { |
$this->corps = $this->erreurs[0]['message']; |
$this->resultatService->corps = $this->erreurs[0]['message']; |
} else { |
$this->transformerReponseCorpsSuivantMime(); |
} |
return $this->corps; |
return $this->resultatService->corps; |
} |
|
public function ajouterErreur(Exception $e) { |
51,17 → 49,16 |
} |
|
public function emettreLesEntetes() { |
$enteteHttp = new EnteteHttp(); |
if ($this->etreEnErreur()) { |
$codeHttp = $this->erreurs[0]['entete']; |
$encodage = 'utf-8'; |
$mime = 'text/html'; |
$enteteHttp->code = $this->erreurs[0]['entete']; |
$enteteHttp->mime = 'text/html'; |
} else { |
$codeHttp = $this->codeHttp; |
$encodage = $this->encodage; |
$mime = $this->mime; |
$enteteHttp->encodage = $this->resultatService->encodage; |
$enteteHttp->mime = $this->resultatService->mime; |
} |
header("Content-Type: $mime; charset=$encodage"); |
RestServeur::envoyerEnteteStatutHttp($codeHttp); |
header("Content-Type: $enteteHttp->mime; charset=$enteteHttp->encodage"); |
RestServeur::envoyerEnteteStatutHttp($enteteHttp->code); |
} |
|
private function etreEnErreur() { |
73,14 → 70,14 |
} |
|
private function transformerReponseCorpsSuivantMime() { |
switch ($this->mime) { |
switch ($this->resultatService->mime) { |
case 'application/json' : |
if (isset($_GET['callback'])) { |
$contenu = $_GET['callback'].'('.json_encode($this->corps).');'; |
$contenu = $_GET['callback'].'('.json_encode($this->resultatService->corps).');'; |
} else { |
$contenu = json_encode($this->corps); |
$contenu = json_encode($this->resultatService->corps); |
} |
$this->corps = $contenu; |
$this->resultatService->corps = $contenu; |
break; |
} |
} |