Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 110 Rev 111
1
<?php
1
<?php
2
class ReponseHttp {
2
class ReponseHttp {
3
 
3
 
4
	private $resultatService = null;
4
	private $resultatService = null;
5
	private $erreurs = array();
5
	private $erreurs = array();
-
 
6
 
-
 
7
	public function __construct() {
-
 
8
		$this->resultatService = new ResultatService();
-
 
9
	}
6
 
10
 
7
	public function setResultatService($resultat) {
11
	public function setResultatService($resultat) {
8
		if (!($resultat instanceof ResultatService)) {
-
 
9
			$this->resultatService = new ResultatService();
12
		if (!($resultat instanceof ResultatService)) {
10
			$this->resultatService->corps = $resultat;
13
			$this->resultatService->corps = $resultat;
11
		} else {
14
		} else {
12
			$this->resultatService = $resultat;
15
			$this->resultatService = $resultat;
13
		}
16
		}
14
	}
17
	}
15
 
18
 
16
	public function getCorps() {
19
	public function getCorps() {
17
		if ($this->etreEnErreur()) {
20
		if ($this->etreEnErreur()) {
18
			$this->resultatService->corps = $this->erreursHttp[0]['message'];
21
			$this->resultatService->corps = $this->erreurs[0]['message'];
19
		} else {
22
		} else {
20
			$this->transformerReponseCorpsSuivantMime();
23
			$this->transformerReponseCorpsSuivantMime();
21
		}
24
		}
22
		return $this->resultatService->corps;
25
		return $this->resultatService->corps;
23
	}
26
	}
24
 
27
 
25
	public function ajouterErreur(Exception $e) {
28
	public function ajouterErreur(Exception $e) {
26
		$this->erreurs[] = array('entete' => $e->getCode(), 'message' => $e->getMessage());
29
		$this->erreurs[] = array('entete' => $e->getCode(), 'message' => $e->getMessage());
27
	}
30
	}
28
 
31
 
29
	public function emettreLesEntetes() {
32
	public function emettreLesEntetes() {
30
		$enteteHttp = new EnteteHttp();
33
		$enteteHttp = new EnteteHttp();
31
		if ($this->etreEnErreur()) {
34
		if ($this->etreEnErreur()) {
32
			$enteteHttp->code = $this->erreurs[0]['entete'];
35
			$enteteHttp->code = $this->erreurs[0]['entete'];
33
			$enteteHttp->mime = 'text/html';
36
			$enteteHttp->mime = 'text/html';
34
		} else {
37
		} else {
35
			$enteteHttp->encodage = $this->resultatService->encodage;
38
			$enteteHttp->encodage = $this->resultatService->encodage;
36
			$enteteHttp->mime = $this->resultatService->mime;
39
			$enteteHttp->mime = $this->resultatService->mime;
37
		}
40
		}
38
		header("Content-Type: $enteteHttp->mime; charset=$enteteHttp->encodage");
41
		header("Content-Type: $enteteHttp->mime; charset=$enteteHttp->encodage");
39
		RestServeur::envoyerEnteteStatutHttp($enteteHttp->code);
42
		RestServeur::envoyerEnteteStatutHttp($enteteHttp->code);
40
	}
43
	}
41
 
44
 
42
	private function etreEnErreur() {
45
	private function etreEnErreur() {
43
		$enErreur = false;
46
		$enErreur = false;
44
		if (count($this->erreurs) > 0) {
47
		if (count($this->erreurs) > 0) {
45
			$enErreur = true;
48
			$enErreur = true;
46
		}
49
		}
47
		return $enErreur;
50
		return $enErreur;
48
	}
51
	}
49
 
52
 
50
	private function transformerReponseCorpsSuivantMime() {
53
	private function transformerReponseCorpsSuivantMime() {
51
		switch ($this->resultatService->mime) {
54
		switch ($this->resultatService->mime) {
52
			case 'application/json' :
55
			case 'application/json' :
53
				$this->resultatService->corps = json_encode($this->resultatService->corps);
56
				$this->resultatService->corps = json_encode($this->resultatService->corps);
54
				break;
57
				break;
55
		}
58
		}
56
	}
59
	}
57
 
60
 
58
}
61
}
59
?>
62
?>