Subversion Repositories eFlore/Applications.del

Rev

Rev 702 | Rev 1793 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 702 Rev 1599
1
<?php
1
<?php
-
 
2
/**
-
 
3
* Classe créant la réponse HTTP pour les services de DEL.
-
 
4
*
-
 
5
* Vérifie qu'aucune erreur n'a été générée. Si une erreur existe, retourne le contenu de l'erreur.
-
 
6
* Encodage en entrée : utf8
-
 
7
* Encodage en sortie : utf8
-
 
8
*
-
 
9
* @category DEL
-
 
10
* @package Commun
-
 
11
* @version 0.1
-
 
12
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
-
 
13
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
-
 
14
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
15
* @copyright 1999-2014 Tela Botanica (accueil@tela-botanica.org)
-
 
16
*/
2
class ReponseHttp {
17
class ReponseHttp {
3
 
18
 
4
	private $resultatService = null;
19
	private $resultatService = null;
5
	private $erreurs = array();
20
	private $erreurs = array();
6
 
21
 
7
	public function __construct() {
22
	public function __construct() {
8
		$this->resultatService = new ResultatService();
23
		$this->resultatService = new ResultatService();
9
	}
24
	}
10
 
25
 
11
	public function setResultatService($resultat) {
26
	public function setResultatService($resultat) {
12
		if (!($resultat instanceof ResultatService)) {
27
		if (!($resultat instanceof ResultatService)) {
13
			$this->resultatService->corps = $resultat;
28
			$this->resultatService->corps = $resultat;
14
		} else {
29
		} else {
15
			$this->resultatService = $resultat;
30
			$this->resultatService = $resultat;
16
		}
31
		}
17
	}
32
	}
18
 
33
 
19
	public function getCorps() {
34
	public function getCorps() {
20
		if ($this->etreEnErreur()) {
35
		if ($this->etreEnErreur()) {
-
 
36
			foreach ($this->erreurs as $erreur) {
21
			$this->resultatService->corps = $this->erreurs[0]['message'];
37
				$this->resultatService->corps .= $erreur['message']."\n";
-
 
38
			}
22
		} else {
39
		} else {
23
			$this->transformerReponseCorpsSuivantMime();
40
			$this->transformerReponseCorpsSuivantMime();
24
		}
41
		}
25
		return $this->resultatService->corps;
42
		return $this->resultatService->corps;
26
	}
43
	}
27
 
44
 
28
	public function ajouterErreur(Exception $e) {
45
	public function ajouterErreur(Exception $e) {
29
		$this->erreurs[] = array('entete' => $e->getCode(), 'message' => $e->getMessage());
46
		$this->erreurs[] = array('entete' => $e->getCode(), 'message' => $e->getMessage());
30
	}
47
	}
31
 
48
 
32
	public function emettreLesEntetes() {
49
	public function emettreLesEntetes() {
33
		$enteteHttp = new EnteteHttp();
50
		$enteteHttp = new EnteteHttp();
34
		if ($this->etreEnErreur()) {
51
		if ($this->etreEnErreur()) {
35
			$enteteHttp->code = $this->erreurs[0]['entete'];
52
			$enteteHttp->code = $this->erreurs[0]['entete'];
36
			$enteteHttp->mime = 'text/html';
53
			$enteteHttp->mime = 'text/html';
37
		} else {
54
		} else {
38
			$enteteHttp->encodage = $this->resultatService->encodage;
55
			$enteteHttp->encodage = $this->resultatService->encodage;
39
			$enteteHttp->mime = $this->resultatService->mime;
56
			$enteteHttp->mime = $this->resultatService->mime;
40
		}
57
		}
41
		header("Content-Type: $enteteHttp->mime; charset=$enteteHttp->encodage");
58
		header("Content-Type: $enteteHttp->mime; charset=$enteteHttp->encodage");
42
		RestServeur::envoyerEnteteStatutHttp($enteteHttp->code);
59
		RestServeur::envoyerEnteteStatutHttp($enteteHttp->code);
43
	}
60
	}
44
 
61
 
45
	private function etreEnErreur() {
62
	private function etreEnErreur() {
46
		$enErreur = false;
63
		$enErreur = false;
47
		if (count($this->erreurs) > 0) {
64
		if (count($this->erreurs) > 0) {
48
			$enErreur = true;
65
			$enErreur = true;
49
		}
66
		}
50
		return $enErreur;
67
		return $enErreur;
51
	}
68
	}
52
 
69
 
53
	private function transformerReponseCorpsSuivantMime() {
70
	private function transformerReponseCorpsSuivantMime() {
54
		switch ($this->resultatService->mime) {
71
		switch ($this->resultatService->mime) {
55
			case 'application/json' :
72
			case 'application/json' :
56
				$this->resultatService->corps = json_encode($this->resultatService->corps);
73
				$this->resultatService->corps = json_encode($this->resultatService->corps);
57
				break;
74
				break;
58
		}
75
		}
59
	}
76
	}
60
 
77
 
61
}
78
}
62
?>
79
?>