Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 31 | Rev 41 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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