1 |
<?php |
2 |
/** |
3 |
* Ce fichier permet de déclarer la classe consultations, ressource exposée à |
4 |
* travers l'interface REST qui hérite de la classe de base Services. |
5 |
* |
6 |
* @package openfoncier |
7 |
* @version SVN : $Id$ |
8 |
*/ |
9 |
|
10 |
// Inclusion de la classe de base Services |
11 |
include_once('./REST/services.php'); |
12 |
|
13 |
// Inclusion de la classe consultationManager qui effectue le traitement métier |
14 |
include_once('./metier/consultationmanager.php'); |
15 |
|
16 |
/** |
17 |
* Cette classe définie la ressource 'consultations' qui permet d'exposer : la |
18 |
* saisie d'un retour d'avis sur une consultation par un service interne à la |
19 |
* mairie qui souhaite interfacer cette action dans son propre logiciel (ERP). |
20 |
*/ |
21 |
class consultations extends Services { |
22 |
|
23 |
/** |
24 |
* Cette méthode permet de définir le traitement du PUT sur une requête |
25 |
* REST. Elle vérifie la validité du format des données reçues, effectue le |
26 |
* traitement et retourne le résultat. |
27 |
* |
28 |
* @param mixed $request_data Les données JSON reçues (voir @uses) |
29 |
* @param string $id L'identifiant de la ressource |
30 |
*/ |
31 |
public function put($id, $request_data) { |
32 |
|
33 |
// Vérification de l'existence de l'ID de la requête REST |
34 |
// Si l'id d'est pas présent, on retourne un code 400 |
35 |
if (!$id || empty($id)) { |
36 |
return $this->sendHttpCode(400, "Aucun id fourni pour la ressource."); |
37 |
} |
38 |
|
39 |
// Initialisation de l'attribut contents avec les clés qui doivent être |
40 |
// récupérées dans les données JSON reçues |
41 |
$this->contents['date_retour'] = ''; |
42 |
$this->contents['avis'] = ''; |
43 |
|
44 |
// Vérification de la validité du format des données de la requête REST |
45 |
// Si le format n'est pas correct, on retourne un code 400 |
46 |
$optional = array('motivation', 'nom_fichier', 'fichier_base64'); |
47 |
if (!$this->requestValid($request_data, $optional)) { |
48 |
return $this->sendHttpCode(400, "Le format des données reçues n'est pas correct."); |
49 |
} |
50 |
|
51 |
// Instanciation de la classe qui s'occupe du traitement métier |
52 |
$this->metier_manager = new ConsultationManager(); |
53 |
|
54 |
// Exécution du traitement |
55 |
$ret = $this->metier_manager->consultationDecision($request_data, $id); |
56 |
|
57 |
// Gestion du retour en fonction du résultat |
58 |
return $this->sendReply($ret, $this->metier_manager->getMessage()); |
59 |
|
60 |
} |
61 |
|
62 |
} |
63 |
|
64 |
?> |