Subversion Repositories Sites.obs-saisons.fr

Rev

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

Rev 31 Rev 33
1
<?php
1
<?php
2
 
2
 
3
class OdsIndividu extends JRestService {
3
class OdsIndividu extends JRestService {
-
 
4
 
-
 
5
	const PREFIXE = 'get';
4
 
6
	
5
	/**
7
	/**
6
     * Méthode appelée avec une requête de type GET.
8
     * Méthode appelée avec une requête de type GET.
7
     *
9
     *
8
     */
10
     */
9
    function getElement($param = array()) {
11
    function getElement($param = array()) {
10
    	
-
 
11
    	$donnees_test = $this->retournerDonneesTest();
-
 
12
    	    	
12
    	    	
-
 
13
    	$type = $param[0];
-
 
14
    	
-
 
15
    	if ($type == '*' || is_numeric($type)) {
13
    	if($param[0] == "*") { 
16
            $info = $this->getElementParDefaut($param);
-
 
17
        } else {
-
 
18
            $methode = self::PREFIXE.$type;
14
    		$info = $donnees_test;
19
            if (method_exists($this, $methode)) {
15
    	} else if(is_numeric($param[0])) {
20
                array_shift($param);
-
 
21
                $info = $this->$methode($param);
-
 
22
            } else {
-
 
23
                $this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
16
    	    $info = $donnees_test[$param[0]];
24
            }
17
    	}
25
        }
18
       
26
       
19
        // Envoi sur la sortie standard
27
        // Envoi sur la sortie standard
20
        $this->envoyer($info);
28
        $this->envoyer($info);
21
    }
29
    }
22
   
30
   
23
    /**
31
    /**
24
     * Méthode appelée pour ajouter un élément.
32
     * Méthode appelée pour ajouter un élément.
25
     */
33
     */
26
    public function createElement($params) {
34
    public function createElement($params) {
-
 
35
    	
-
 
36
        $elements_requis = array('id_participant','id_espece','id_station','individu_nom');
-
 
37
        
-
 
38
    	foreach($elements_requis as $requis) {
27
        // Identification de l'utilisateur
39
    		if(!isset($params[$requis])) {
28
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
40
    			//$erreurs[$requis] = 'erreur ';
-
 
41
    		}
-
 
42
    	}
29
   
43
    	
30
        // Contrôle du non détournement de l'utilisateur
44
    	if(!empty($erreurs)) {
31
        if ($this->etreAutorise($id_utilisateur)) {
45
    		$this->envoyer($erreurs);
32
            try {
46
    	}
33
                
47
    	
34
            } catch (PDOException $e) {
48
    	$id_participant = $params['id_participant'];
-
 
49
    	
35
                $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
50
    	$requete_creation_individu = 'INSERT INTO ods_individus '.
-
 
51
					'(oi_ce_espece, oi_ce_station, oi_nom) '.
36
            }
52
					'VALUES ('.
-
 
53
							$this->proteger($params['id_espece']).','.
-
 
54
							$this->proteger($params['id_station']).','.		
-
 
55
							$this->proteger($params['individu_nom']).')';	
-
 
56
		$creation_individu = $this->executerRequeteSimple($requete_creation_individu);
-
 
57
		
-
 
58
		if(!$creation_individu) {
-
 
59
    		// TODO: comment gère t'on les erreurs ?
37
        }
60
    	}
-
 
61
    	
38
        $this->envoyer((string) $id_personne);
62
    	$this->envoyer();
39
    }
63
    }
40
   
64
   
41
    /**
65
    /**
42
     * Méthode appelée pour mettre à jour un élément
66
     * Méthode appelée pour mettre à jour un élément
43
     */
67
     */
44
    public function updateElement($uid, $params)    {
68
    public function updateElement($uid, $params)    {
45
        //Mise à jour de la personne
69
        //Mise à jour de la personne
46
        // Identification de l'utilisateur
70
        // Identification de l'utilisateur
47
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
71
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
48
       
72
       
49
        // Contrôle du non détournement de l'utilisateur
73
        // Contrôle du non détournement de l'utilisateur
50
        if ($this->etreAutorise($id_utilisateur)) {
74
        if ($this->etreAutorise($id_utilisateur)) {
51
            try {
75
            try {
52
 
76
 
53
            } catch (PDOException $e) {
77
            } catch (PDOException $e) {
54
                $messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
78
                $messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
55
            }
79
            }
56
        }
80
        }
57
       
81
       
58
        $this->envoyer();      
82
        $this->envoyer();      
59
    }
83
    }
60
   
84
   
61
    /**
85
    /**
62
     * Méthode appelée pour supprimer un élément
86
     * Méthode appelée pour supprimer un élément
63
     */
87
     */
64
    public function deleteElement($uid) {
88
    public function deleteElement($uid) {
65
        // Vérification de la présence des id passés par l'url
89
        // Vérification de la présence des id passés par l'url
66
        if (!isset($uid[0]) || !isset($uid[1])) {
90
        if (!isset($uid[0]) || !isset($uid[1])) {
67
            $this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
91
            $this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
68
        } else {
92
        } else {
69
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
93
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
70
           
94
           
71
            // Contrôle du non détournement de l'utilisateur     
95
            // Contrôle du non détournement de l'utilisateur     
72
            if ($this->etreAutorise($id_utilisateur)) {
96
            if ($this->etreAutorise($id_utilisateur)) {
73
                // Récupération des id passés par l'url     
97
                // Récupération des id passés par l'url     
74
                $identifiants = explode(',', rtrim($uid[1], ','));
98
                $identifiants = explode(',', rtrim($uid[1], ','));
75
                if (count($identifiants) == 0) {
99
                if (count($identifiants) == 0) {
76
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
100
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
77
                } else {
101
                } else {
78
                    foreach ($identifiants as $id_personne) {
102
                    foreach ($identifiants as $id_personne) {
79
                        try {
103
                        try {
80
                        } catch (PDOException $e) {
104
                        } catch (PDOException $e) {
81
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
105
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
82
                        }
106
                        }
83
                    }
107
                    }
84
                }
108
                }
85
            }
109
            }
86
        }
110
        }
87
       
111
       
88
        // Envoie sur la sortie standard
112
        // Envoie sur la sortie standard
89
        $this->envoyer();
113
        $this->envoyer();
90
    }
114
    }
91
    
115
    
-
 
116
    private function getInformationsIndividu($params) {
-
 
117
    	
-
 
118
    	$id_individu = $params[0];
-
 
119
 
-
 
120
    	$requete_toute_espece = 'SELECT * FROM ods_individus '. 
-
 
121
								'WHERE oi_id_individu = '.$this->proteger($id_individu);
-
 
122
    	$liste_espece = $this->executerRequete($requete_toute_espece);
-
 
123
    	
-
 
124
    }
-
 
125
    
-
 
126
    private function getIndividusPourStation($params) {
-
 
127
    	
92
    private function retournerDonneesTest() {
-
 
93
    		    	
-
 
94
		return array(
-
 
95
		    	'1' => 
128
    	$id_station = $params[0];
96
					array(
129
    		    	
97
		    			'id' => '1',
130
		$requete_individus_station = 'SELECT * FROM ods_individus '. 
-
 
131
									 'WHERE oi_ce_station = '.$this->proteger($id_station);
98
		    			'nom' => 'Individu 1',
132
    	$liste_individus_pour_station = $this->executerRequete($requete_individus_station);
-
 
133
 
99
		    			'nom_scientifique' => 'Acer monspessulanum',
134
    	foreach($liste_individus_pour_station as &$individu_pour_station) {
100
						'nom_vernaculaire' => 'Erable de Montpellier',
135
    		
101
						'description' => 'Quel bel individu!'
136
    		$individu_pour_station = $this->formaterTableauIndividuPourEnvoi($individu_pour_station);   		
102
		    		),
-
 
103
		    	'2' => 
-
 
104
		    		 array(
137
    	}
105
		    			'id' => '2',
-
 
106
		    			'nom' => 'Individu 2',
-
 
107
				    	'nom_scientifique' => 'Acer monspessulanum',
-
 
108
						'nom_vernaculaire' => 'Erable de Montpellier',
138
    	
109
						'description' => 'Quel bel individu!'
139
    	return $liste_individus_pour_station;
110
		    		),
-
 
111
		    		
140
    }
-
 
141
    
112
		    	'3' => 
142
	private function getIndividusPourStationPourEspece($params) {
113
		    		array(
143
    	
-
 
144
    	$id_station = $params[0];
114
		    			'id' => '3',
145
    	$id_espece = $params[1];
115
		    			'nom' => 'Individu 3',
146
    		    	
116
				    	'nom_scientifique' => 'Acer monspessulanum',
147
		$requete_individus_station_espece = 'SELECT * FROM ods_individus '. 
117
						'nom_vernaculaire' => 'Erable de Montpellier',
148
									 'WHERE oi_ce_station = '.$this->proteger($id_station).' '.
118
						'description' => 'Quel bel individu!'
-
 
119
		    		),
-
 
120
		    	'4' => 
-
 
121
 					array(
-
 
122
		    			'id' => '4',
149
									 'AND oi_ce_espece ='.$this->proteger($id_espece);
-
 
150
		
123
		    			'nom' => 'Individu 4',
151
    	$liste_individus_pour_station_pour_espece = $this->executerRequete($requete_individus_station_espece);
-
 
152
 
124
				    	'nom_scientifique' => 'Acer monspessulanum',
153
		foreach($liste_individus_pour_station_pour_espece as &$individu_pour_station_pour_espece) {
125
						'nom_vernaculaire' => 'Erable de Montpellier',
154
    		
126
						'description' => 'Quel bel individu!'
-
 
127
		    		),
155
    		$individu_pour_station_pour_espece = $this->formaterTableauIndividuPourEnvoi($individu_pour_station_pour_espece);   		
128
		    	'5' => 
-
 
129
 					array(
-
 
130
		    			'id' => '5',
156
    	}
131
		    			'nom' => 'Individu 5',
-
 
132
		    			'nom_scientifique' => 'Acer monspessulanum',
-
 
133
						'nom_vernaculaire' => 'Erable de Montpellier',
157
    	
-
 
158
    	return $liste_individus_pour_station_pour_espece;
134
						'description' => 'Quel bel individu!'
159
    }
-
 
160
    
135
		    		),
161
	private function formaterTableauIndividuPourEnvoi($individu) {
136
		    	'6' => 
-
 
137
 					array(
162
    	
138
		    			'id' => '6',
163
    	return array( 
139
		    			'nom' => 'Individu 6',
164
    	    'id_espece' => $individu['oi_id_individu'],
140
		    			'nom_scientifique' => 'Acer monspessulanum',
165
            'id_espece' => $individu['oi_ce_espece'],
141
						'nom_vernaculaire' => 'Erable de Montpellier',
166
            'id_station' => $individu['oi_ce_station'],
142
						'description' => 'Quel bel individu!'
167
    	    'nom' => $individu['oi_nom']
143
		    		)
168
        );
144
		    	);
169
    	
145
    }
170
    }
146
}
171
}
147
?>
172
?>