Subversion Repositories eFlore/Applications.del

Rev

Rev 1440 | Rev 1450 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1440 Rev 1444
Line 34... Line 34...
34
	
34
	
35
	public function modifier($ressources, $parametres) {
35
	public function modifier($ressources, $parametres) {
36
		$this->verifierParametres($ressources, $parametres);
36
		$this->verifierParametres($ressources, $parametres);
Line 37... Line 37...
37
		$id_proposition = $ressources[1];
37
		$id_proposition = $ressources[1];
38
		
-
 
39
		$retour = $this->modifierObservationParDetermination($id_proposition, $parametres);
-
 
40
		
38
		
41
		if ($retour == false) {
39
		if(!$this->modifierObservationParDetermination($id_proposition, $parametres))
42
			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
40
			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
43
		} else {
-
 
44
			RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_OK);
41
 
Line 45... Line 42...
45
		}
42
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_OK);
46
	}
43
	}
47
	
44
	
Line 64... Line 61...
64
	}
61
	}
Line 65... Line 62...
65
	
62
	
66
	
63
	
-
 
64
	private function modifierObservationParDetermination($id_proposition, $parametres) {
-
 
65
		$informations_proposition = self::obtenirInformationDetermination($this->bdd, $id_proposition, $parametres['auteur.id']);
-
 
66
		if(! $informations_proposition) {
-
 
67
			throw new Exception("Cette proposition est invalide.", RestServeur::HTTP_CODE_ERREUR);
67
	private function modifierObservationParDetermination($id_proposition, $parametres) {
68
		}
68
		$informations_proposition = self::obtenirInformationDetermination($this->bdd, $id_proposition, $parametres['auteur.id']);
69
 
69
		$id_observation = $informations_proposition['ce_observation'];
70
		$id_observation = $informations_proposition['ce_observation'];
70
		// obtenirInformationsObservation()
71
		// obtenirInformationsObservation()
71
		$informations_observation = $this->bdd->recuperer(sprintf('SELECT * FROM del_observation WHERE id_observation = %d',
72
		$informations_observation = $this->bdd->recuperer(sprintf('SELECT * FROM del_observation WHERE id_observation = %d',
72
																  intval($id_observation)));
73
																  intval($id_observation)));
73
		$est_autorise = $this->comparerAuteurObservationUtilisateurIdentifie($informations_observation['ce_utilisateur']);
74
		$est_autorise = $this->comparerAuteurObservationUtilisateurIdentifie($informations_observation['ce_utilisateur']);
74
		if(! $est_autorise) {
75
		if(! $est_autorise) {
75
			throw new Exception("Seul l'utilisateur ayant saisi l'observation peut la valider : veuillez vous identifier.\n",
-
 
76
								RestServeur::HTTP_CODE_ERREUR);
76
			throw new Exception("Seul l'utilisateur ayant saisi l'observation peut la valider : veuillez vous identifier.\n",
Line 77... Line 77...
77
			return;
77
								RestServeur::HTTP_CODE_ERREUR);
-
 
78
		}
78
		}
79
 
-
 
80
		$informations_proposition['ce_utilisateur'] = $informations_observation['ce_utilisateur'];
-
 
81
 
-
 
82
		$ret = $this->envoyerRequeteModificationObservation($id_observation, $informations_proposition);
-
 
83
		// cf cel/jrest/services/CelValidationObservation.php::updateElement()
-
 
84
		// TODO: check sur HTTP code == 200, plutôt que sur texte
-
 
85
		if($ret == 'ok' || $ret == 'OK') {
-
 
86
			// remet à 0 le status "proposition_retenue" pour toutes les propositions faites sur cette
-
 
87
			// observation à l'exception de celle désormais validée
-
 
88
			$this->bdd->requeter(sprintf('UPDATE del_commentaire SET proposition_retenue = IF(id_commentaire = %d, 1, 0)' .
-
 
89
										 ' WHERE ce_observation = %d -- %s',
79
 
90
										 $informations_proposition['id_commentaire'], $id_observation, __FILE__ . ':' . __LINE__));
Line 80... Line 91...
80
		$informations_proposition['ce_utilisateur'] = $informations_observation['ce_utilisateur'];
91
		}
81
		return $this->envoyerRequeteModificationObservation($id_observation, $informations_proposition);
92
		return $ret;
82
	}
93
	}