Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 33 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
31 aurelien 1
<?php
2
 
3
class OdsEspece extends JRestService {
4
 
5
	const PREFIXE = 'get';
6
 
7
	/**
8
     * Méthode appelée avec une requête de type GET.
9
     *
10
     */
11
    function getElement($param = array()) {
12
 
13
    	$type = $param[0];
14
 
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
        }
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) {
35
        // Identification de l'utilisateur
36
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
37
 
38
        // Contrôle du non détournement de l'utilisateur
39
        if ($this->etreAutorise($id_utilisateur)) {
40
            try {
41
 
42
            } catch (PDOException $e) {
43
                $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
44
            }
45
        }
46
        $this->envoyer((string) $id_personne);
47
    }
48
 
49
    /**
50
     * Méthode appelée pour mettre à jour un élément
51
     */
52
    public function updateElement($uid, $params)    {
53
        //Mise à jour de la personne
54
        // Identification de l'utilisateur
55
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
56
 
57
        // Contrôle du non détournement de l'utilisateur
58
        if ($this->etreAutorise($id_utilisateur)) {
59
            try {
60
 
61
            } catch (PDOException $e) {
62
                $messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
63
            }
64
        }
65
 
66
        $this->envoyer();
67
    }
68
 
69
    /**
70
     * Méthode appelée pour supprimer un élément
71
     */
72
    public function deleteElement($uid) {
73
        // Vérification de la présence des id passés par l'url
74
        if (!isset($uid[0]) || !isset($uid[1])) {
75
            $this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
76
        } else {
77
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
78
 
79
            // Contrôle du non détournement de l'utilisateur
80
            if ($this->etreAutorise($id_utilisateur)) {
81
                // Récupération des id passés par l'url
82
                $identifiants = explode(',', rtrim($uid[1], ','));
83
                if (count($identifiants) == 0) {
84
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
85
                } else {
86
                    foreach ($identifiants as $id_personne) {
87
                        try {
88
                        } catch (PDOException $e) {
89
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
90
                        }
91
                    }
92
                }
93
            }
94
        }
95
 
96
        // Envoie sur la sortie standard
97
        $this->envoyer();
98
    }
99
 
100
/** ======================= Methodes privées d'accès au informations ================================ */
101
 
102
    private function getElementParDefaut() {
103
    	return $this->getEspeces();
104
    }
105
 
106
    private function getEspeces() {
107
 
108
		return array(
109
    		'1' => array(
110
    			'id' => '1',
111
    			'nom_vernaculaire' => 'Erable de Montpellier'
112
    		),
113
    		'2' => array(
114
    			'id' => '2',
115
    			'nom_vernaculaire' => 'Herbe à canard'
116
    		),
117
    		'3' => array(
118
    			'id' => '3',
119
    			'nom_vernaculaire' => 'Coquelicot'
120
    		),
121
    		'4' => array(
122
    			'id' => '4',
123
    			'nom_vernaculaire' => 'Herbe à chat'
124
    		),
125
    		'5' => array(
126
    			'id' => '5',
127
    			'nom_vernaculaire' => 'Hibou'
128
    		),
129
    		'6' => array(
130
    			'id' => '6',
131
    			'nom_vernaculaire' => 'Coucou'
132
    		)
133
	    );
134
    }
135
 
136
    private function getEspece($params) {
137
 
138
    		$id_espece = $params[0];
139
 
140
    		$infos_espece = array(
141
	    	'id' => $id_espece,
142
			'nom_scientifique' => 'Acer monspessulanum',
143
			'nom_vernaculaire' => 'Erable de Montpellier',
144
			'description' => 'Un arbre bien connu de tous',
145
			'url_image' => 'http://www.tela-botanica.org/sites/eflore/generique/images/projets/eflore/bdnff/4.02/nt/8523/002543.jpg'
146
	    );
147
 
148
	    return $infos_espece;
149
    }
150
 
151
    private function getEspecesPourStation($params) {
152
 
153
    	$id_station = $params[0];
154
 
155
    	$especes_dans_station = $this->getEspeces();
156
 
157
    	$modulo = ($id_station+7)%6;
158
	    if($modulo == 0) $modulo = 1;
159
 
160
	    return array_slice($especes_dans_station, 0, $modulo);
161
    }
162
 
163
    private function getEspecesParType($params) {
164
 
165
    	$id_type = $params[0];
166
 
167
    	return $especes_par_type = array(
168
 
169
				'1' => array(
170
						'nom' => 'herbacées',
171
						'especes' => array(
172
								    	'1' => array('id' => '1',
173
								    	'nom_vernaculaire' => 'Herbe de Montpellier'
174
								    	)
175
								    )
176
				),
177
 
178
				'2' => array(
179
						'nom' => 'arbres',
180
						'especes' => array(
181
								    	'id' => array('id' => '1',
182
								    	'nom_vernaculaire' => 'Erable de Montpellier'
183
								    	)
184
								   )
185
 
186
				),
187
 
188
				'3' => array(
189
						'nom' => 'animaux',
190
						'especes' => array(
191
								    	'id' => array('id' => '1',
192
								    	'nom_vernaculaire' => 'Hibou de Montpellier'
193
								    	)
194
								   )
195
				)
196
	    	);
197
 
198
	    return $especes_par_type;
199
    }
200
}
201
?>